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