Php 为什么在Symfony 1.2中重写Doctrine_Record::save()会给我一个严格的标准错误?
我有以下型号:Php 为什么在Symfony 1.2中重写Doctrine_Record::save()会给我一个严格的标准错误?,php,symfony1,doctrine,Php,Symfony1,Doctrine,我有以下型号: class Model extends BaseModel { public function save($conn = null) { if(!$this->getId()) { //do stuff } return parent::save($conn); } } 我觉得我在遵循API对签名的描述(除了奇怪的括号,我会给我一个语法错误…) 当我运行此代码时,它运行良好,但我得到以下
class Model extends BaseModel
{
public function save($conn = null)
{
if(!$this->getId())
{
//do stuff
}
return parent::save($conn);
}
}
我觉得我在遵循API对签名的描述(除了奇怪的括号,我会给我一个语法错误…)
当我运行此代码时,它运行良好,但我得到以下警告:
Strict Standards: Declaration of Model::save() should be compatible with that of Doctrine_Record::save() in $ROOT/lib/model/doctrine/Model.class.php on line 6
我通常将错误报告改为error_ALL,并尝试使用无警告代码。这让我很烦恼。我签出了所有的信条源代码,并在上面加上了“save”(),一个接一个地尝试签名。什么都没有。第一次PHP因为我太放纵,奇怪的hu:-)?save方法的正确签名应该是:
public function save(Doctrine_Connection $conn = null)
另请注意:在其他函数中,您可能会遇到此错误,但您需要使用函数($event)来代替上述内容。谢谢!当然,我应该得到这个。现在,您可以在PHP中使用对象来强制执行类型(但如果我记得的话,则不是像整数这样的基本类型)。感觉PHP正试图赶上Java:-难道你不应该对这样的东西使用钩子吗?说得好。它干净多了。