$ MDL

2013-05-14 19 views
1

我看到人们使用变量之前强调即使使用保护例如关键字

class Administration extends Backend_Controller { 

    protected $_mdl = 'model_comments'; 

    function __construct() 
    { 
     parent::__construct(); 
     $mdl = $this->_mdl; 
     $this->load->model($mdl); 
    } 

    ... 

} 

如果我在变量之前使用protected,则需要下划线吗?

在mdl之前使用下划线有什么好处:$_mdl而不仅仅是$mdl

我在这个“安全”问题上不是很好,所以任何解释都不胜感激。

回答

7

这是一个命名约定。它用于显示房产的scope。无论是保护还是公开。通过查看下划线,您知道如何访问类属性。

类型,(但不是真的),就像__与魔术方法(如构造函数方法)一起使用。

如果你遵循这个约定,PHP并不关心。它对代码的解释没有影响。

在其他语言中,您甚至可以看到诸如Hungarian Notation之类的内容。

最后,没有真正的安全隐含。这完全取决于您的代码的可读性。

+0

谢谢,你用'的property'的范围是什么意思PHP手册。请你再解释一下。 – Derfder

+0

和安全明智吗? – Derfder

+0

它的一个var名称,这就是全部,有一个_或一个X没有做任何事情使变量不同在任何地方 – 2013-05-14 20:10:09

3

它一样差,因为它是$a$abc之间

2

不是一个安全问题,一个简单的命名约定旨在使识别非公开(受保护或私有)性质更容易识别。它对PHP没有意义,纯粹是为了美学。