我想弄清楚为什么isset不能在$this变量上工作?我正在使用HMVC代码点火器,并试图检查模块是否成功加载:
$this->load->module('welcome');
var_dump(isset($this->welcome));
print_r($this->welcome);
结果是:
bool(false) --- This is the result of isset. Below is result of var_dump
Welcome Object
(
[autoload] => Array
(
)
[load] => MY_Loader Object
(
[_module:protected] => welcome
[_ci_plugins] => Array
(
)
[_ci_cached_vars] => Array
(
)
... some other protected variables
[controller] => Welcome Object
*RECURSION*
)
)
为什么isset返回false?
在深入检查CodeIgniter核心文件后,我发现有一种方法可以检查它:
if(!isset(Modules::$registry['welcome'])) { // check module loaded
return jsonError(2);
}
// module loaded. Go ahead