我有一個包含多個公共屬性的類,其中的對象正在系統的不同部分中使用。問題是我只需要在每個使用類對象的地方加載一些公共屬性,因爲每次加載整個屬性列表都將永遠佔用。如何僅在PHP中需要時加載變量
有沒有什麼辦法可以使用__autoload
或類似的函數來調用在調用它們時加載不同變量的函數?
E.g.
class Bread {
public
$Ingredients,
$Price,
$Color;
public function magicLoading($var) {
switch($var) {
case "Ingredients" : return loadIngredients();
case "Price" : return loadPrice();
case "Color" : return loadColor();
default : break;
}
}
public function loadIngredients() {
$this->Ingredients = ...
}
}
foreach($Bread->Ingredients as $Ingredient) {
//do stuff here
}
我認爲值得明確解釋在運行時創建的屬性如何默認爲public,從而繞過未來的`__get()`調用。 (因此,如果你想要一個只讀的懶惰負載,這種方法是不好的,但如果這不是問題,這是一個很好的'技巧') – Matthew 2010-12-01 18:52:01