Подтвердить что ты не робот

Вызов функции до ее определения | 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;

?>

Знаешь, что я имею в виду?:)

4b9b3361

Ответ 1

Вы можете вызвать функцию, определенную после ее вызова. Это потому, что PHP сначала анализирует файл, а затем выполняет его.

Что касается переменной - это невозможно, вы должны включить файл.

Ответ 2

Я только что обнаружил, что вы можете вызвать функцию, если она определена позже в том же файле.
Но если он определен в другом файле, вы должны включить файл перед вызовом функции.

my_func();
function my_func() {...}
--->   No problem

но

my_func();
include_once 'define_my_func.php';
--->   PHP Fatal error

Он похож на условную функцию, как в примере 2 документа doc на пользовательские функции

Ответ 3

Вы не можете вызвать функцию undefined, это приведет к фатальной ошибке. хотя в процедурный код он может быть вызван и впоследствии определен. При первом анализе script выполняется. не имеют значения, они ведут себя так, как если бы они были написаны в точном файле.

нет такой вещи, как переменная "из файла". если код определяет, что переменная не запущена, ее не может быть.

Ответ 4

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>';
}
?>