1

我遇到了来自php.net的注释(最后一个注释)。留下纸条的人说:

在全局范围内使用 return 它将结束执行但不处理。

我不知道“执行”和“处理”的确切含义以及它们之间的区别。

4

1 回答 1

1

请注意,这两个术语都是由用户编写的,并非来自 PHP 手册本身,但是相同的 PHP 页面回答了您的问题:

如果从全局范围调用,则结束当前脚本文件的执行。如果包含或需要当前脚本文件,则将控制权传递回调用文件。此外,如果包含当前脚本文件,则返回的值将作为包含调用的值返回。如果从主脚本文件中调用 return,则脚本执行结束。如果当前脚本文件由 php.ini 中的 auto_prepend_file 或 auto_append_file 配置选项命名,则该脚本文件的执行结束。

因此,即使在当前文件上完成处理并返回时,它也会将控制权返回给包含它的文件(如果是的话)。如果它没有包含在任何地方,那么处理和执行都将在那里停止

该网站上的一条重要评论也解释了

现在,php 的工作方式是在执行实际代码之前,它执行您所谓的“处理”实际上只是语法检查。每次执行该文件之前包含的每个文件都会执行此操作。这是一个很好的功能,因为它确保不运行非功能代码的任何部分。您的示例可能还说...是在执行此语法检查时,它不会执行代码,而只是在执行之前通过您的文件(或包含)检查语法错误。为了表明这一点,你应该把 echo "b"; 并回显“a”;在每个文件的开头。这将显示“b”被回显一次,然后“a”只被回显一次,因为它第一次语法检查a.php,它是好的。

两个报价的参考:PHP手册

于 2013-02-04T08:10:50.913 回答