Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:在包含之前在其他文件中使用函数_Php - Fatal编程技术网

PHP:在包含之前在其他文件中使用函数

PHP:在包含之前在其他文件中使用函数,php,Php,这样行吗?为什么不呢 文件:run.php <?php test(); include('function.php'); ?> 文件:function.php <?php function test(){echo 'working';} ?> 因为这样就行了 <?php test(); function test(){echo 'working';} ?> 有趣的问题 您可以调用在调用后定义的函数。这是因为P

这样行吗?为什么不呢

文件:run.php

<?php 
   test(); 
   include('function.php');
?> 

文件:function.php

<?php
   function test(){echo 'working';}
?>

因为这样就行了

<?php
   test();
   function test(){echo 'working';}
?>

有趣的问题


您可以调用在调用后定义的函数。这是因为PHP首先解析文件,然后执行它。这就是第三个代码段工作的原因。

不,第一个包含两个文件的示例不起作用,因为只有当PHP到达特定代码行时,才会执行include,因此您尝试在PHP看到其定义之前调用test(),而在第二个示例中,PHP解析了整个文件,因此它知道test()我知道,但是我一直认为include和require将在执行代码之前完成。。似乎不对!不,它们只有在代码中到达该行时才会执行,这就是为什么可以使用includes返回一个值,然后分配给变量,或者在if/else中使用includes为什么我得到-3?有人能解释吗?