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);
}
我不明白返回家长::保存($con(请帮助我,谢谢
它调用父方法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');
这个类扩展了一个 Propel Model 类,该类也有一个 save(( 方法。此 save 方法覆盖父级的 save(( 方法。当调用这个被覆盖的 save(( 时,它首先执行一些与此具体类相关的工作,然后调用父类的 save((,它将在数据库中保留对象的属性。
如果你看一下类声明,它会说类似
class ThisClass extends anotherClass.
您不理解的行正在返回另一个类中 save(( 方法的输出
parent
是表示"此类正在扩展的类"的关键字
::
(范围解析运算符(允许您调用该方法 - 前提是它被声明为静态而不实例化类 -
除非有其他事情发生,否则您应该能够将该行替换为
return $this->save($con);
::
是范围解析运算符。它允许您访问类中的属性或方法。
parent
关键字引用当前类的父类。
考虑到这一点,您的 return
语句正在调用类父级的 save()
方法。