1
我需要一個唯一類型的值,類似於C#的DBNull.Value。如何創建一個不可分配的虛擬值?
我正在嘗試如何在PHP中實現此功能。下面是我想出迄今:
class Wild {
public static $value;
private function __construct() {}
}
call_user_func(function() {
$r = new ReflectionClass(Wild::class);
Wild::$value = $r->newInstanceWithoutConstructor();
});
現在,我可以很容易地訪問我的單身通過Wild::$value
。問題在於任何人都可以隨時將Wild::$value
重新分配給其他人,這會破壞整個API。有什麼辦法可以防止這種情況發生?
N.B.構造函數是私有的,以防止意外實例化。關閉是防止$r
漏出,因爲它在全球範圍內。
@PleaseWait你在問什麼? – mpen 2014-10-28 17:32:55
@PleaseWait我還是不明白你想說什麼。 Wild :: $ value'需要公開訪問,但開發人員不應該將其重新分配給其他內容。 – mpen 2014-10-28 17:36:00