这是我的代码。我想要的是在方法$a
中分配属性set_a()
值我需要在get_a()
方法中获得相同的值,而不是在对象初始化之后调用set_a()
或在{{1}之内调用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"
答案 0 :(得分:3)
您应该在课堂上初始化您的属性:
class simple
{
public $a='ABC';
//...
}
或在构造函数中执行此操作:
class simple
{
public $a;
public function __construct($a='ABC')
{
$this->a=$a;
}
}
- 第二种方式更好,因为它不仅可以初始化常量表达式(在第一种情况下不能使用复杂表达式)。但是,如果初始化值依赖于太复杂的东西(函数调用e t.c.) - 你需要在构造函数中定义所需的行为。
有关第一种情况允许的内容的更多说明,请参阅this reference。