PHP,自定义包含函数-如何生成所有其他函数&;可访问变量?
我已经为我的应用程序设计了一个自定义的include函数,这是为了让我的生活更轻松,除非它完全相反,并导致我调试相同类型的错误数小时,直到这个灯泡时刻意识到它是什么 因为文件包含在函数中,所以文件中的变量、函数等不是全局的 我有没有办法让它发挥作用,或者整个练习毫无意义 请参见下面的代码PHP,自定义包含函数-如何生成所有其他函数&;可访问变量?,php,function,include,Php,Function,Include,我已经为我的应用程序设计了一个自定义的include函数,这是为了让我的生活更轻松,除非它完全相反,并导致我调试相同类型的错误数小时,直到这个灯泡时刻意识到它是什么 因为文件包含在函数中,所以文件中的变量、函数等不是全局的 我有没有办法让它发挥作用,或者整个练习毫无意义 请参见下面的代码 function import($a,$b = 1) { global $options; if($b == 1) $folder = "internal_functions";
function import($a,$b = 1) {
global $options;
if($b == 1) $folder = "internal_functions";
elseif($b == 2) $folder = "external_functions";
else $folder = $b;
$file_path = $options['LIB_DIR']."/".$folder."/".$a.".php";
if(@!file_exists($file_path)) {
$_criticalFiles = array("sessionService/session_loader", "databaseService/db_connection","userService/isLoggedIn");
if(in_array($a,$_criticalFiles)) {
die("<center><h1>Critical Error.<br />Could not find {$a}.</h1></center>");
}
} else {
require_once($file_path);
}
}
函数导入($a,$b=1){
全球美元期权;
如果($b==1)$folder=“内部函数”;
elseif($b==2)$folder=“外部函数”;
else$folder=$b;
$file_path=$options['LIB_DIR'].“/”$folder./“$a..php”;
如果(@!file_存在($file_路径)){
$\u criticalFiles=array(“会话服务/会话加载程序”、“数据库服务/db\u连接”、“用户服务/isLoggedIn”);
if(在数组中($a,$\u关键文件)){
die(“严重错误。
找不到{$a}”);
}
}否则{
需要一次(文件路径);
}
}
谢谢这是一个安全问题。在函数中创建的任何变量,如果希望在函数外部可用,则必须将其
全局化。对于那些想知道我是如何解决这个问题的人,我没有
相反,我将所有文件放在一个数组中,例如
$filesInclude = array("file1","file2","file3","etc");
本地和外部文件都有2个不同的数组,然后在数组上运行for循环。:) 你还可以添加$a.php
中的内容吗?$a.php
是文件的变量名,$b
是文件夹的变量名我理解这一点,但是有没有一种方法可以作为一种二鸟一石的方法,或者我必须初始化每个变量?磨损的结--你必须做每一个,而这并不考虑外部文件中定义的任何函数。隐马尔可夫模型。。。。我不确定我能为你做点什么,我得摆弄一下,时间不早了,我累了。请查看。感谢您的帮助-只需省去所有这些,将导入($a,$b)函数中的内容放入for循环,并将include放入数组中即可。:)