如何判断是否从包含的文件中调用了return().问题是include()返回’int 1′,即使没有调用return().这是一个例子……
included_file_1.php
return 1;
included_file_2.php
echo 'no return here, meep';
main.php
$ret = include('included_file_1.php');
// This file DID return a value, int 1, but include() returns this value even if return() wasn't called in the included file.
if ($ret === 1)
{
echo 'file did not return anything';
}
var_dump($ret);
$ret = include('included_file_2.php');
// The included file DID NOT return a value, but include() returns 'int 1'
if ($ret === 1)
{
echo 'file did not return anything';
}
var_dump($ret);
编辑:作为一个临时解决方案,我正在捕获include()(来自echo / print语句)的输出.如果生成了任何输出,我将忽略include()的返回值.
不漂亮,但它提供了我在我的Web应用程序/框架中所需的功能.