我想了解PHP如何用擴展類中的靜態方法管理內存和變量。我有三個名爲Model,User1,User2的類。因此:擴展類和靜態值
class Model {
static public $structure;
static public $name;
static function get_structure() {
return self::$structure = file_get_contents(self::$name.'.json');
}
}
class User1 extends Model {
}
class User2 extends Model {
}
User1::$name = 'User1';
User2::$name = 'User2';
echo User1::get_structure();
echo User2::get_structure();
如果我運行User1 :: get_structure();由於某種原因,它不能相應地填充結果,它似乎在抓取User2的值(聲明的最後一個$ name值)。
我正在假設聲明User2和擴展模型爲我的$ name屬性創建一個完全獨立的作用域。因此,User1和User2被聲明爲具有與Model相同結構的獨立類。然後我可以在不同的範圍內爲它們靜態地定義它們的值。
但我現在在質疑。如果我擴展並調用相同的$ name變量,它們是否都指向Model類?或者當我使用新的User1()聲明每個類時,它只創建一個單獨的範圍;和新的User2();?
謝謝。
如果使用的是靜態類,它不是面向對象編程。我正在移除標籤。此外,模型是[層](http://stackoverflow.com/a/5864000/727208),而不是一個類。 – 2012-07-14 17:37:17
... rriigghhtt。好吧。 – pilotguy 2012-07-14 17:42:08