请帮我理解代码

时间:2013-11-22 15:47:10

标签: php symfony1

public function save(PropelPDO $con = null)
{
  if ($this->isNew() && !$this->getExpiresAt())
  {
    $now = $this->getCreatedAt() ? $this->getCreatedAt('U') : time();
    $this->setExpiresAt($now + 86400 * sfConfig::get('app_active_days'));
  }

  return parent::save($con);
}

我不明白返回父:: save($ con)请帮帮我,谢谢

4 个答案:

答案 0 :(得分:1)

它正在调用父方法save,所以这个类从它调用该方法的任何类扩展。

class Animal {
    public function getName($name) {
        return "My fav animal: " . $name;   
    }
}

class Dog extends Animal {
    public function getName($name) {
        return parent::getName($name);
    }
}

$dog = new Dog();
echo $dog->getName('poodle');

答案 1 :(得分:1)

如果你查看类声明,它会说类似

class ThisClass extends anotherClass. 

您不理解的行是在anotherClass

中返回save()方法的输出
parent

是关键字,表示“此类正在扩展的类”

{{1>}(范围解析运算符)允许您调用该方法 - 前提是它被声明为 static 而不实例化类 -

除非有其他事情发生,否则您应该能够用

替换该行
::

答案 2 :(得分:1)

这个类扩展了一个Propel Model类,它也有一个save()方法。此save方法会覆盖父级的save()方法。当调用这个重写的save()时,它首先做一些与这个具体类相关的工作,然后调用父的save(),它将持久保存数据库中对象的属性。

答案 3 :(得分:0)

::是范围解析运算符。它允许您从类中访问属性或方法。

parent关键字指的是当前类的父类。

考虑到这一点,您的return语句正在调用您班级的父级save()方法。