PHP静态成员继承
我有一个基本类:PHP静态成员继承,php,oop,inheritance,static,Php,Oop,Inheritance,Static,我有一个基本类: <?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
use Parse\ParseObject;
use Parse\ParseQuery;
class BaseModel extends ParseObject
{
public static $className = 'PlaceHolder';
public static function query() {
return new ParseQuery(self::$className);
}
}
查询功能在父类中定义,因此将使用该类的值。这是self
关键字的限制。你会想调查一下,以避开这个问题
public static function query() {
return new ParseQuery(static::$className);
}
query
函数位于父类中,因此self
始终是父类,在另一个类中重新定义变量并不重要。简单的解决方案是将类名作为参数传入。
public static function query() {
return new ParseQuery(static::$className);
}