0

这是我的代码。我想要的是在方法中分配属性$a值,set_a()我需要在方法中获得相同的值,而无需在对象初始化后或在其中get_a()调用,并且也不想将任何参数传递给任何一种方法。有没有其他方法可以做到这一点?set_a()get_a()

class simple
{
    public $a;

    public function set_a()
    {
        $this->a = "ABC"; //need this value in get_a()
    }

    public function get_a()
    {
        echo $this->a; //should referenced from set_a()
    }
}

$foo = new simple();
echo $foo->get_a(); //output should be "ABC"
//or
echo $foo->a; //output should be "ABC"
4

1 回答 1

3

您应该在类中初始化您的属性:

class simple
{
    public $a='ABC';
    //...
}

或者在构造函数中这样做:

class simple
{
    public $a;
    public function __construct($a='ABC')
    {
       $this->a=$a;
    }
}

- 第二种方法更好,因为它不仅允许您初始化常量表达式(在第一种情况下不能使用复杂的表达式)。但是,如果初始化值依赖于过于复杂的东西(函数调用 e tc) - 您需要在构造函数中定义所需的行为。

有关第一种情况下允许的内容的更多说明,请参阅此参考资料。

于 2013-10-31T13:17:51.517 回答