为了账号安全,请及时绑定邮箱和手机立即绑定

core\lib\conf.php中的$conf和self::$conf有什么区别?

打印出来发现$conf为:Array
(
   [CTRL] => index
   [action] => index
)

self::$conf为:

Array
(
   [F:\Apache\htdocs\imooc\core\config\route.php] => Array
       (
           [CTRL] => index
           [action] => index
       )

)

产生区别的原因是什么?

正在回答

3 回答

$conf 是类方法里面定义的局部变量,self::$conf中的$conf是类中定义的静态属性,两者不可混淆。前者的作用域只在定义的方法里;后者是属于类的,可在对象之间共享,在类的内部访问静态元素要使用self关键字加两个冒号,在类外直接使用类名加两个冒号访问静态元素。

0 回复 有任何疑惑可以回复我~

这个例子中的$conf 和 self::$conf,不是一个东西。只不过只看名字差不多。你把其中任意一个换下名字,就可以更直观的理解。

看一下代码

1)$conf = include $file; //这个$conf 存的是include返回的值。

2)self::$conf[$file] = $conf;//这个self::$conf 存的是是在类里的变量。【它在类里定义的:static public $conf = array();

如果换个区别很大的名字:

1)$abc= include $file;

2)self::$xyz[$file]=$abc;  【要在类里定义static public $xyz = array();】

这样就不容易误会两个家伙有关系了=。=


0 回复 有任何疑惑可以回复我~

self是在类里面调用

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

core\lib\conf.php中的$conf和self::$conf有什么区别?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信