return
仅在函数/方法内存在。
但,我看到一些PHP开发人员即使在index.php文件(Web Server的根)中也使用了功能之外的
return
使用。在这种情况下是什么意思?顺便说一句,可能需要一些文件内部功能,但这种样式不是我的。
没有什么要说的要比docs的了。 :
return
语句 结束当前函数的执行,并将其参数返回为 函数调用的值。返回还将结束执行
eval()
语句或脚本文件。
不太常见的用法:
如果从全局范围调用,然后执行当前脚本 文件结束。如果当前脚本文件是include
或require
D, 然后,控制将传递回呼叫文件。此外,如果是 包括当前脚本文件,然后给出的返回的值将 作为包含呼叫的值返回。如果从 在主脚本文件中,然后脚本执行结束。如果是 当前脚本文件由auto_prepend_file命名或 auto_append_file配置选项php.ini,然后是该脚本 文件的执行结束了。
手册中的某个地方记录了记录
// myFile.php return array( 'foo' => 'bar'); // somewhere else $config = include 'myFile.php'; echo $config['foo'];
如果您在主范围中使用return
如果在主范围中使用php,将留下文件包含,并将值用作包含(include[_once]()
,
require[_once]()
但是,我看到了一些php-dev的使用返回关键字外部功能,甚至 在index.php文件中(在Web服务器的根中)。那是什么意思?您知道共同的目的。但是,您要问的是防止PHP
文件中的代码注入。看看这篇文章,该帖子解释了:
php中的PHP中的预备代码注入包括文件
在讨论编码标准的同时,我不久前就反对 在PHP文件的末尾添加?>。但是Miqrogroove向我指出了 有趣的方面为什么实际上可以有意义 每个文件末尾的其他返回语句: 返回语句)可以防止攻击者附加有效载荷代码 对于现有的PHP文件,例如已知包括文件。 对抗非常容易,只需在 文件的结尾。它将结束包括“子例程”:
示例:
/* all the include file's php code */
return;
?>