いくつかの変数にバインドしたクロージャーがいくつかあります。
例えば
$x = function() { echo "hi there"; };
$x が誤って他の値に切り替えられないようにしたいのです。これを行う方法はありますか?
定数はスカラー値にしか解決されないため、使用できません。
いくつかの変数にバインドしたクロージャーがいくつかあります。
例えば
$x = function() { echo "hi there"; };
$x が誤って他の値に切り替えられないようにしたいのです。これを行う方法はありますか?
定数はスカラー値にしか解決されないため、使用できません。
私はあなたがそれを達成できるとは思わない:
しかし、私は回避策を思いつきました.私が思いついた唯一のものです.それがあなたにとって大丈夫かどうかはわかり
ません__destruct()
:
Class Hulk {
function __construct(){
echo "Hulk is born!<br>";
}
function __destruct(){
throw new Exception('Someone is trying to destroy Hulk, not knowing that he is indestructible!!!');
}
}
$x = new Hulk();
$x = "hello";
X に「hello」を割り当てようとすると、例外がスローされます。
Fatal error: Uncaught exception 'Exception' with message 'Someone is trying to destroy Hulk, not knowing that he is indestructible!!!' in /Applications/MAMP/htdocs/test.php:38 Stack trace: #0 /Applications/MAMP/htdocs/test.php(44): Hulk->__destruct() #1 {main} thrown in /Applications/MAMP/htdocs/test.php on line 38
また、エコーだけを行うなど、必要なことを何でも行うことで、より静かにすることもできます。また、この方法で、一連の関数をクラス内のメソッドとしてグループ化し、常にアクセスできるようにすることができます。