即時通訊新的在C#和我想學習更多一點...現在,我有麻煩理解靜態ArrayList。靜態ArrayList存儲內存中的值?
在PHP我可以定義:
Class Singleton{
private static $instance;
private static $arrayDemo = array();
private function __construct(){}
public static function getInstance(){
if(!isset(self::$instance))
self::$instance = new Singleton();
return self::$instance;
}
public static addItem($item){
self::$arrayDemo[] = $item;
}
public static getItems(){
return self::$arrayDemo[];
}
}
Singleton::getInstance();
Singleton::addItem("first");
Singleton::addItem("second");
Singleton::getItems(); // returns {0=>first,1=>second}
如果我重新加載頁面時,我得到相同的結果(0 =>第一,1 =>第二)
進出口試圖實現在c#單例模式得到同樣的事情,但我得到了重複值:
public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
private static ArrayList ArrayDemo = new ArrayList();
private Singleton() { }
public static Singleton Instance
{
get
{
return instance;
}
}
public static void AddItem(string item)
{
ArrayDemo.Add(item);
}
public static ArrayList GetItems()
{
return ArrayDemo;
}
}
//in cshtml:
Singleton.AddItem("first");
Singleton.AddItem("second");
Singleton.GetItems();
如果我刷新網站有一段時間,我得到了相同的結果PHP ...但是,如果我刷新3倍的回報..:
0=>first,1=>second,2=>first,3=>second,4=>first,5=>second
爲什麼會發生這種情況?如果我使用靜態方法,我可以清除ArrayList結果刷新? 我只是想了解這個邏輯。
謝謝你們!
這就是問題:PHP不知道*真實*靜態實例:)請參閱http://stackoverflow.com/questions/468642/is-it-possible-to-create-static-classes-in-php-像在C/468653#468653和http://stackoverflow.com/questions/432192/singleton-in-php –
@AndreasNiedermair當我從C#學到更多,我覺得我失去了5年的PHP世界:( – Carasuman