class X
{
private $myVar;
function __constructor()
{
this->myVar = array();
}
}
或
class X
{
private $myVar = array();
function __constructor()
{
}
}
有什么区别?哪个更好?
答案 0 :(得分:2)
除了明显的语法差异之外,除了明显的语法差异之外,没有实际意义。该数组的行为相同,所有代码也依赖于它。
如果你想进入边缘情况,如果你在实例化对象时不运行构造函数(例如,如果你extend
并覆盖了构造函数没有调用parent::__construct
)。在第一种情况下,$myVar
将是null
,这可能会导致代码依赖于它是一个数组。
我建议在声明属性时始终初始化,因为它的代码更少,更明显你对变量的意图是什么,并且你避免了如上所述的奇怪的边缘情况。
答案 1 :(得分:2)
嗯,没有性能差异,但我建议在声明类变量时执行此操作,因为它将提供变量属性和访问修饰符的概念,而无需读取整个代码。
答案 2 :(得分:2)
在这里,您没有初始化任何内容,只需键入您的变量
在属性中初始化变量可以很好地查看属性类型,并根据业务逻辑设置自定义默认值,而不是 PHP 给出的1d
就性能而言,这是我个人的观点,你的例子没有区别。