我有这个基类:
<?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时,我会发布&#39;发布&#39;但是当我使用Post :: query()时,它使用父类值&#39; PlaceHolder&#39;。
为什么继承的静态函数使用父类的值?
答案 0 :(得分:3)
query
函数在父类中定义,因此将使用该类的值。这是self
关键字的限制。您需要查看Late Static Binding以解决此问题。
public static function query() {
return new ParseQuery(static::$className);
}