重複の可能性:
変数 variable の実際の使用法は何ですか?
PHP の可変変数が解決策をより明確にするケースはありますか?
例:
$a = 'hello';
$$a = 'hello, world!';
echo $hello;
重複の可能性:
変数 variable の実際の使用法は何ですか?
PHP の可変変数が解決策をより明確にするケースはありますか?
例:
$a = 'hello';
$$a = 'hello, world!';
echo $hello;
私の例は変数変数を正確に扱っているわけではありませんが、明確にするためにクラスのインスタンスを含む変数からクラス定数にアクセスすることを含むため、意図は似ています。
名前空間を使用していない場合、最終的にクラス名がかなり長くなります。今週、レガシー システムからの結果から書き戻すメッセージを決定するためにいくつかの switch ステートメントを実行する必要があるコードを書いていましたが、結果コードを直接比較したくなかったので、コードを定数として配置しましたクラス。
これをさらに 7 つのケースで想像してみてください。
switch ($resultFromReset) {
case Application_Users_Results_PasswordResetResult::NEW_PASSWORD_CHANGED_AND_EMAIL_SENT:
$resultMessage = 'Please check your e-mail for instructions';
break;
クラス名が長すぎて、ケースに入れてみると、大きくて見苦しく、読みにくかったです。
そこで、簡単にするために、新しいクラスを変数に保存し、そこから定数を参照しました。
$ResultCode = new Application_Users_Results_PasswordResetResult();
switch ($resultFromReset) {
case $ResultCode::NEW_PASSWORD_CHANGED_AND_EMAIL_SENT:
$resultMessage = 'Please check your e-mail for instructions';
break;
ここの変数は、コードをきれいにして、はるかに読みやすくします。
私はそれをあなたの例に一歩近づけることができました:
$ResultCode = "Application_Users_Results_PasswordResetResult";
switch ($resultFromReset) {
case $ResultCode::NEW_PASSWORD_CHANGED_AND_EMAIL_SENT:
$resultMessage = 'Please check your e-mail for instructions';
break;
しかし、私の定数の名前を変更しなければならなかった次の貧しい魂の生活を困難にしたくありませんでした!
したがって、まったく同じではありませんが、これは、変数変数のいくつかの可能な使用法の実際の例を示しています。
(しかし、個人的には、避けてください!)