PHP 初始化变量中的 __construct() 与声明

php
2022-08-30 12:28:42

我想知道两者之间是否有任何区别

class TestClass {
    private $_var = "abc";
}

class TestClass {
    private $_var;
    function __construct() {
        $this->_var = "abc";
    }
} 

我想知道后者是否是首选方式/更好的做法?有什么功能差异吗?


答案 1

它们实际上是相同的。我更喜欢前者,因为这样就只有一个地方可以查找值及其默认值。

另一方面,如果您需要对它执行动态操作或将其设置为数组或基元以外的任何内容,则需要使用第二种形式。值得注意的是,不能使用函数调用在第一个窗体中声明变量。


答案 2

好问题!我觉得第一个例子更正确,如果你已经知道对象属性的初始值,你为什么要在构造函数中声明它?

我觉得构造函数的目的是设置可能是可变的属性。

如果有的话,它似乎是一个可读性的东西。我不知道这两种方法是否有任何性能问题。


推荐