涉及Symfony 1.4和Propel,但我不确定它们会导致下面描述的奇怪行为。
$this->_parent = TestPeer::retrieveByPK($this->getParentId());
var_dump(get_class($this->_parent), $this->_parent);
打印出'Test'和'null'。
这怎么可能?
PS
1 / $ this-> getParentId()返回整数,DB中没有相应的记录,因此$ this-> _parent应为null。
2 / php 5.5.6,xdebug,opcache
答案 0 :(得分:4)
从The PHP Manual引用get_class:
5.3.0 NULL成为object的默认值,因此现在将NULL传递给object与不传递任何值的结果相同。
与...一起:
返回其对象是实例的类的名称。返回 如果对象不是对象,则为FALSE。
如果在类中省略了object,则该类的名称为 返回。
...表示当传递null时,您将获得包含该调用的类的名称。