在fuelphp中覆盖静态变量

时间:2014-03-25 06:41:04

标签: php static fuelphp

我在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

我预计会打印帖子。这有什么问题?

1 个答案:

答案 0 :(得分:2)

它返回null,因为未分配$table_name,而是应在return static::$table_name;类的getName()内添加ModelMain以启用{{ 1}},因此它会显示Late Static Binding作为输出。

延迟静态绑定......

post