And*_*rew 6 php oop constructor
我正在浏览PHP文档并看到几个注释,其中变量在类的构造函数之外初始化,类似于以下内容:
classMyClass {
private $count = 0;
public function __construct() {
//Do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
在PHP对象,模式和实践中,作者建议仅使用构造来初始化属性,将任何繁重的复杂逻辑推迟到专门的方法.本教程(一个简单的例子,我在谷歌找到)还建议使用构造函数初始化属性:http://www.killerphp.com/tutorials/object-oriented-php/php-objects-page-3.php.
为什么要在构造函数外部初始化变量?这只是草率编码,还是有理由做这样的事情?我必须说,直到最近,我在构造函数之外初始化了默认值,并且似乎没有任何一种方法优于另一种方法的程序优势.
在构造函数外部初始化变量时,必须将其初始化为常量.您无法执行任何操作来初始化它.因此,该成员的初始值实际上是类签名的一部分.
例如,这是无效的:
private $var = $othervar;
private $var = func();
Run Code Online (Sandbox Code Playgroud)
您也可以在构造函数中执行此操作,但它会更加冗长并为构造函数添加一些混乱,除非存在某种逻辑.