请教关于对象属性的自动获取

blog例子中

public function getStatusOptions()

{


	return array(


		self::STATUS_DRAFT=>'Draft',


		self::STATUS_PUBLISHED=>'Published',


		self::STATUS_ARCHIVED=>'Archived',


	);


}





/**


 * @return string the status display for the current post


 */


public function getStatusText()


{


	[color="#FF0000"]$options=$this->statusOptions;[/color]


	return isset($options[$this->status]) ? $options[$this->status] : "unknown ({$this->status})";


}

这里的$this->statusOptions是什么时候建立的?

难道写了一个public function getStatusOptions就会自动建立StatusOptions成员变量么??

这不是php的内建语法吧?框架在什么地方做了处理么?

这是Yii的component特有的用法:通过getter和setter定义类似成员变量的类属性。它的好处在于,当你用$this->statusOptions时,你可以自定义复杂的逻辑来提供statusOptions。具体请参见guide有关component的描述。

看看 CComponent::__get() 和 CComponent::__set() 就知道了

几乎所有类,都继承CComponent

这功能不错,多谢指点