PHP:为骨架中的对象属性和__construct分配值

时间:2013-11-10 04:52:16

标签: php oop

之间有区别吗?
class foo {
    public $bar = 'baz';
     }

class foo {

    public $bar;

    public function __construct()
    {
        $this->bar = 'baz';
    }
}

4 个答案:

答案 0 :(得分:2)

是的,有区别......

始终使用 constructor 初始化变量的方式。下面的示例会在您的第一个方法上引发错误。

class foo {
    public $bar = $_POST['foo']; //Error will be thrown
     }

class foo {

    public $bar;

    public function __construct()
    {
        $this->bar = $_POST['foo']; // Works just fine
    }
}

答案 1 :(得分:1)

最初没有任何不同......

答案 2 :(得分:0)

不是我意识到的。 PHP没有像{1}那样的final概念,所以这个方法可以随时更改。无论你是否在构造函数中执行它都不会影响任何事情

答案 3 :(得分:0)

使用参数是如何最大化构造函数概念的方法,

如:

class foo {

    private $bar;

    public function __construct($bar)
    {
        $this->bar = $bar;
    }

    public function getBar()
    {
        return $this->bar;
    }
}

$foo = new foo("daison12006013");
echo $foo->getBar();