Ответ 1
Вы можете вызвать функцию, определенную после ее вызова. Это потому, что PHP сначала анализирует файл, а затем выполняет его.
Что касается переменной - это невозможно, вы должны включить файл.
Есть ли какой-либо возможный способ, когда в файле один - обратите внимание, всего один файл. Вызов функции, если она еще не определена, например
<?php
echo global_title();
function global_title()
{
$title = $_GET['name'];
return $title;
}
?>
Я не знаю, как это объяснить, но это не вполне возможно, не так ли? Что касается переменной из другого файла (без ее включения), можно вызвать в другом файле, например.
config.php
<?php
$db = "localhost";
?>
index.php
<?php
// I do not want it to be accessed by including it or using sessions
echo $db;
?>
Знаешь, что я имею в виду?:)
Вы можете вызвать функцию, определенную после ее вызова. Это потому, что PHP сначала анализирует файл, а затем выполняет его.
Что касается переменной - это невозможно, вы должны включить файл.
Я только что обнаружил, что вы можете вызвать функцию, если она определена позже в том же файле.
Но если он определен в другом файле, вы должны включить файл перед вызовом функции.
my_func();
function my_func() {...}
---> No problem
но
my_func();
include_once 'define_my_func.php';
---> PHP Fatal error
Он похож на условную функцию, как в примере 2 документа doc на пользовательские функции
Вы не можете вызвать функцию undefined, это приведет к фатальной ошибке. хотя в процедурный код он может быть вызван и впоследствии определен. При первом анализе script выполняется. не имеют значения, они ведут себя так, как если бы они были написаны в точном файле.
нет такой вещи, как переменная "из файла". если код определяет, что переменная не запущена, ее не может быть.
stackoverflow мне очень помогает, поэтому я просто делаю рабочий пример, 3 файла:
позвоните: testfunc.php чтобы увидеть ошибки, testfunc. # inc.php - пример, func1.php с func1()
<?php
/* testfunc.#inc.php
quote:
I just discovered that you can call a function if it defined later in the same file.
But if it defined in an other file, you must include the file before calling the function.
//phpfunction
my_func();
function my_func() {...}
---> No problem
but
my_func();
include_once 'define_my_func.php';
---> PHP Fatal error
It like a conditional function as in the example 2 on the doc on user-defined functions
EXAMPLE:
*/
$f_inscript0_includ1= 0; //1 = call before include function = ERROR
//
if($f_inscript0_includ1)func1(); //call before include: Fatal error: Call to undefined function func1() in .. testfunc.#inc.php on line 21
func0();
echo 'func0() was called <br>';
function func0(){
echo '<br>in function func0() in script testfunc , call before declaration <br>';
}
echo 'func0() was defined <br>';
include 'func1.php';
echo 'func1.php file was included <br>';
func1(); //call after include ok!
echo 'func1() was called <br>';
//------//
<?php
// testfunc.php // do not see an error -only blank page: Your file has syntax error, so your file was not interpreted, so settings was not changed and you have blank page. You can separate your file to two: index.php inc.php
ini_set('display_errors', 1 ) ;
error_reporting(E_ALL & ~ E_NOTICE ) ;
//If there is ever an instance where you are using _once look into why it is the case, is you code really built in the most efficient way? It is often better to remove the need to rely on _once and produce better code (easier said than done!).
//nu. $qddebug = 0 ;
include 'testfunc.#inc.php';
//------//
<?php
//nu. echo '<h2>in func1.php</h2><hr>';
function func1(){
echo '<br>in file func1.php > inside function func1() <br>';
}
?>