3
在使用PHP類時,我注意到在一個類內部,當我以'$ this-> variablename方式'在函數中定義一個變量作爲該類的屬性時,它會自動變成該類的公共變量。在PHP類中可以在函數內部創建一個私有變量嗎?
class example {
public function setstring(){
$this->string = "string";
}
}
這樣
$class = new example();
echo $class->string;
輸出:串;
但是,如果我想創建只能在類中的函數訪問私有變量的情況下,是否有聲明它們只在函數setstring()內?而不是像這樣在函數之外聲明它們是私有的。
class example {
private $string ='';
public function setstring(){
$this->string = "string";
}
}
的原因有人可能做到這一點是整潔,以免有任何類別的beggining聲明私有變量的一個長長的清單。
也許使用私有數組來存儲變量和值? – AbraCadaver
你稱之爲「整潔」我稱之爲模棱兩可。在大多數情況下,所有的屬性都應該在類的頂部進行聲明,特別是私人類。這樣你就知道對象預期會有什麼屬性。要回答你的問題,不,所有動態聲明的屬性默認都是公共的。 – jfadich