我使用include();
来加载我的页面的某些部分,但有时如果我在特定区域工作我希望include();
函数终止某个地方,所以我使用return;
和该行后面的所有内容都不会包括在该文件上调用include();
时。我不能使用die();
,因为有时我还需要包含其他文件。PHP使用函数作为返回;?
现在,我希望能够根据其他用户看到的功能来控制该功能,例如 - 我想限制哪些类型的用户可以在包含文件中的return;
行之外看到。我希望管理员级用户能够看到超出这一点,但不是普通用户。所以我使用某种if() { }
语句来检查用户类型。有时我只希望自己能够查看return;
一行后的内容,然后添加if($ip != $my_ip) return;
。
问题是我必须手动编写这些东西,但由于我经常使用它,我想写一个函数,我可以传递给用户,我想绕过return;
部分。所以我设置一个terminate();
功能,这样的事情:
function terminate($param) {
// if statement
{
return;
}
}
但return;
线在该功能只有函数中返回,它不会对调用该函数的文件有任何影响。换句话说,我的terminate();
函数中的return;
行实际上并不会执行return;
我需要停止include();
函数。
那么,如何阻止我的文件超越某一点与功能的include();
命令,并将它没有中断停止的include();
后剩余的代码?
编辑:在文件
if(terminate($param)) return;
所以通过我的参数的函数,如果返回true
后(停止include();
),它会return;
:作为一个临时补丁,我用这我包括在内。所以,它的工作原理是这样的,我只是想知道如果有可能只是有一个terminate($param);
命令,将火上调用,而不在if()
声明具有围绕把它包起来该功能?该文件的return;
命令..
'包括'是一种手术。对我来说,它应该是原子的 - 就像任何其他操作一样,它只能失败或成功。成功意味着“完全包含”。中间情况似乎很奇怪,就像“可能是它被包括了”或“它被包括了,但我们不知道它是多么完全”(并且对于“可能”的外部脚本条件是完全黑匣子)。那么为什么你需要这样的行为? –
Aaah。我懂了。然后我无法想象除测试以外的其他任何方式。你可以编写很多检查userType,Ip等的函数,它返回布尔值。 if(myFuncForUserTypes($ user_id)){// included content}' –
我的目标是在**文件中停止include(); **,而不是我想包含文件。它可以和'return;'一起工作,但每次我想要在包含文件的某个部分之前终止时,它的写入条件会很乏味,使用函数会更容易。此外,每次包装内容if()'都会阻止。我正在寻找一种方法让函数内的'return;'行启动'return;'调用该函数的文件,而不是它只返回**内所谓的函数。 – Matt