PHP如何翻译我们的代码?

PHP如何翻译我们的代码?,php,Php,我有这个密码 ` // //打印出“你好,世界!” // 你好//第一个电话 函数hello_world() { 回声“你好,世界!\n”; } 你好//第二次呼叫 ?>` 两个“hello_world”调用将打印出相同的结果。很容易理解为什么第二个调用将输出为“Hello world”,但是第一个调用如何输出与函数Hello_world本身启动之前调用的相同的内容?PHP文件将被解析,然后在两个单独的步骤中运行。在调用函数之前先对其进行解析,这样就不需要进行前向声明/原型设计。PHP函数可以

我有这个密码

`
//
//打印出“你好,世界!”
//
你好//第一个电话
函数hello_world()
{
回声“你好,世界!
\n”; } 你好//第二次呼叫 ?>`

两个“hello_world”调用将打印出相同的结果。很容易理解为什么第二个调用将输出为“Hello world”,但是第一个调用如何输出与函数Hello_world本身启动之前调用的相同的内容?

PHP文件将被解析,然后在两个单独的步骤中运行。在调用函数之前先对其进行解析,这样就不需要进行前向声明/原型设计。

PHP函数可以在定义之前进行调用,因为它是解析然后执行的。

函数在调用之前进行评估。由于函数位于同一个文件中,因此两个函数调用都是有效的,并且都指向您定义的函数

如果您在另一个函数中定义了一个函数,或者将它们封装在条件语句中,则会有例外,但您提供的代码最为有效


更多信息:

是的,但是你不能在
if
语句中包装函数声明吗?@Earlz:是的,我读过这篇文章。这是关于函数内部的函数声明,不是吗?@Earlz:PHP尝试先解析,然后运行,但是当它看到类似于
if
语句的函数时,它被迫将解析函数的过程留待以后,并动态处理。您会注意到,
就是因为这个原因而失败的;通常情况下,它会在评估之前尝试解析所有内容。
  //
  // prints out "Hello World!"
  //
  hello_world();   //First call

  function hello_world()
  {
    echo "Hello World!<br/>\n";
  }

  hello_world(); //second call

?>`