欢迎来到云服务器

网络技术

PHP措施中如何安详的利用Include包括文件

好像大都人都以为Include文件是一件很是简朴的工作,惋惜裂痕往往呈此刻我们忽视的处所。正所谓千里之堤溃于蚁穴,二战期间,法国人寄但愿与马奇诺防地,却忽视了原本认为很是安详的阿登高地,让德国人有机可乘,最终的功效各人都知道了。

下面这个例子固然是我杜撰的,可是我确信现实环境里必然存在雷同的问题:


<?php

$debug = false;

// ...

$config = include 'config.php';

// ...

if ($debug) {
    phpinfo();
}

?>

码农在代码中埋了一个调试开关,缺省是封锁状态,须要的时候可以开启,以便显示一些非凡的信息,同时代码里包括了一个设置文件,,它的内容大抵如下所示:


<?php

return array(
    'foo' => '...',
    'bar' => '...',
);

?>

溘然有一天,码农因为一些其它的缘由修改了设置文件,引入了一些姑且变量:


<?php

$debug = true;

$config = array(
    'foo' => '...',
    'bar' => '...',
);

/*
if ($debug) {
    var_dump($config);
}
*/

return $config;

?>

功效问题发生了!设置文件里的姑且变量(debug)污染了其它剧本的变量空间,进而导致代码执行的功效不再切合预期,最终问题也就在所不免了。

如何安详的Include文件?很简朴,在Include的时候留意限制变量的浸染域即可:


<?php

$config = call_user_func(function() {
    return include 'config.php';
});

?>

雷同的做法在Javascript中很常见,但在PHP中却鲜有人留意,你的代码有问题么?

腾讯云代理

Copyright © 2003-2021 MFISP.COM. 国外vps服务器租用 梦飞云服务器租用 版权所有 粤ICP备11019662号