我在php中有一个示例代码
class First {
public static $name;
public static function getName() {
return static::$name;
}
}
class Second extends First {
public static $name = 'second';
}
echo Second::getName(); // print 'second'
但是当我把它写入fuelphp时:
文件1:
namespace Model;
use \DB;
class ModelMain extends \Model {
public static $table_name;
public static function getName() {
return self::$table_name;
}
}
文件2
class Post extends \Model\ModelMain {
public static $table_name = "post";
}
当我打电话
Post::getName() // Print null
我预计会打印帖子。这有什么问题?
答案 0 :(得分:2)
它返回null
,因为未分配$table_name
,而是应在return static::$table_name;
类的getName()
内添加ModelMain
以启用{{ 1}},因此它会显示Late Static Binding
作为输出。
延迟静态绑定......
post