Php 阻止从URL调用函数,但允许内部调用

Php 阻止从URL调用函数,但允许内部调用,php,function,Php,Function,我有一个控制器,它有一个函数test()。当通过URL访问时,我想使此函数不可访问,但我不能将其设置为私有或受保护,因为我希望其他控制器使用相同的函数 我怎样才能做到这一点,有什么建议吗?如果函数文件是由include或require函数引入控制器文件的,那么您可以在函数文件的开头有类似的内容: defined("CONTROLLER") or die(); 然后,在include函数调用中的函数文件之前,请使用: define("CONTROLLER", true); 这样,直接访问时,函

我有一个控制器,它有一个函数test()。当通过URL访问时,我想使此函数不可访问,但我不能将其设置为私有或受保护,因为我希望其他控制器使用相同的函数


我怎样才能做到这一点,有什么建议吗?

如果函数文件是由
include
require
函数引入控制器文件的,那么您可以在函数文件的开头有类似的内容:

defined("CONTROLLER") or die();
然后,在
include
函数调用中的函数文件之前,请使用:

define("CONTROLLER", true);

这样,直接访问时,函数文件将被
die()
命令终止,但在您专门包含它的任何页面上正常运行。

控制器应重定向到其他控制器,而不是相互调用。如果用户从URL输入,则创建一个
$\u会话
变量,然后将其设置为
1
,只需检查会话['check']=1
exit()