类仅在将值定义为构造函数中的参数时才有效

似乎在不将属性值定义为参数的情况下运行一个类应该可行。有人可以澄清为什么下面的 test-1 不起作用吗?


// Test-1: Property defined without value.  This does not work.


class my_class1 {


    private $color_1;


    public function __construct($color_1)

    {

        $this->color_1 = $color_1;

    }

}


// Test-2: Property defined with value. This works.


class my_class2 {


    private $color_2;


    public function __construct($color_2 = 1)

    {

        $this->color_2 = $color_2;

    }

}

通缉行为:


Test-1 应该可以工作,而不必在类构造函数中将变量定义为参数。


烙印99
浏览 134回答 1
1回答

小唯快跑啊

如果在构造函数中没有为参数设置默认值,则在实例化类时需要为该参数指定一个值。$object1 = new my_class1(); // error$object1 = new my_class1(2); // valid// $this->color_1 == 2通过添加默认值,如果您在实例化期间未指定该值,它将使用该值:$object2 = new my_class2();// $this->color_2 == 1$object2b = new my_class2(5);// $this->color_2 == 5
打开App,查看更多内容
随时随地看视频慕课网APP