这是我的情况:我有一个看起来像这样的 PHP 基类:
class Table {
static $table_name = "table";
public function selectAllSQL(){
return "SELECT * FROM " . self::$table_name;
}
}
还有一个像这样的子类:
class MyTable extends Table {
static $table_name = "my_table";
}
不幸的是,当我这样做的时候:
MyTable::selectAllSQL()
我得到:
"SELECT * FROM table"
而不是我想要的结果,
"SELECT * FROM my_table"
看起来这可以在 php 5.3 中使用 late static bindings 完成, 但有什么方法可以在 PHP 5.2.x 中完成此行为吗?
最佳答案
不是真的。这就是 LSB 被添加到 5.3 的原因。在这个地方,实例化是要走的路,还有一个单例。
关于PHP 5.2 类虚拟静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872931/