Yii框架设置和获取功能

时间:2014-09-02 13:47:22

标签: php yii

我有模型Comment扩展了CActiveRecord并且我定义了一个新变量private $ _postTitle = NULL;我在模型中有以下代码,如页面http://www.mrsoundless.com/php/yii/searching-and-sorting-a-column-from-a-related-table-in-a-cgridview/

中所述
public function getPostTitle()
{
    if ($this->_postTitle === null && $this->post !== null)
    {
        $this->_postTitle = $this->post->title;
    }
    return $this->_postTitle;
}

public function setPostTitle($value)
{
    $this->_postTitle = $value;
}   

我的问题是代码的目的是什么

  

&安培;&安培; $ this-> post!== null

如果我省略这段代码,我就不会得到结果。那怎么&& $ this-> post!== null实际上在这个模型中有效吗?

2 个答案:

答案 0 :(得分:1)

$this->post !== null

它只是在保护你“试图读取空对象异常的属性”。

我想这是不太可能的,但也许你可能会发生没有帖子的评论,如果你试图阅读帖子的标题,它会崩溃,因为post等于null。

我希望我能解释

答案 1 :(得分:0)

我看到,$this->post是与另一个模型的关系。 $this->post !== null正在检查这种关系是否真的存在。

如果省略检查,即使该模型没有关系工作,代码也会尝试让标题$this->post返回错误。