-2

重複の可能性:
参照 - この記号は PHP で何を意味しますか?

以下のコードは機能しますが、有効かどうかはわかりません。

// It should print $param or $_GET['uuu'] if isset:

function test($param) {
    echo @$_GET['uuu'] ? $_GET['uuu'] : $param;

}

test('param');

提案をありがとう。

4

3 に答える 3

6

有効でなければ機能しませ

単にキーストロークを節約したり、コードをきれいに見せたりする@代わりに使用するのは、本当にひどい習慣です。それが行うことは、変数が設定されているかどうかに関係なくisset()変数にアクセスしようとし、変数が存在しない場合に必然的に発生するを抑制します。E_NOTICE

@そのため、その目的のために設計されていないため、変数のチェックには使用しないでください。isset()その目的に役立つ使用:

echo isset($_GET['uuu']) ? $_GET['uuu'] : $param;
于 2012-08-23T01:40:11.960 に答える
3

@$_GET['uuu']存在しない場合、警告メッセージを抑制します。これは、役に立つ可能性のあるエラー メッセージを隠してしまうため、通常は推奨される方法ではありません。たとえば、この例では、$_GET['uuu']が本当に設定されていないのか、サーバーformに送信されない html にエラーがあるのか​​わかりません。uuu

于 2012-08-23T01:40:45.773 に答える
2

@ 記号は、エラーと警告を無視するためにのみ使用されます。それを使用するのは良い習慣ではありません。使用しないことをお勧めします。

機能は有効です。

于 2012-08-23T01:41:28.347 に答える