【发布时间】:2015-06-10 19:19:38
【问题描述】:
我有这个基类:
<?php
use Parse\ParseObject;
use Parse\ParseQuery;
class BaseModel extends ParseObject
{
public static $className = 'PlaceHolder';
public static function query() {
return new ParseQuery(self::$className);
}
}
还有这个子类
<?php
class Post extends BaseModel
{
public static $className = 'Post';
}
当我调用 Post::$className 时,我得到“Post”,但当我使用 Post::query() 时,它使用父类值“PlaceHolder”。
为什么继承的静态函数使用父类的值?
【问题讨论】:
-
query函数在父类中,因此self将始终是父类,您在另一个类中重新定义变量并不重要。跨度> -
简单的解决方案是将类名作为参数传入。
标签: php oop inheritance static