PHP 类属性动态声明时初始化和不初始化的区别是什么?

第一种写法

class test{
    public $a;
    protected $b;
    private $c;
    
    public function __construct($a, $b,$c)
    {
        $this->a = $a;
        $this->b = $b;
        $this->c = $c;
    }
}

第二种写法

class test{
    public function __construct($a, $b,$c)
    {
        $this->a = $a;
        $this->b = $b;
        $this->c = $c;
    }
}

请问这两种写法有什么区别吗还是没有区别,能想到的就是第二种a,b,c三个属性都是为public

最佳答案

第二种当程序中加入了__set()魔术方法后 会报错