17

私はかなり長い間PHPを使用してきましたが、これは常に私にとって謎であり、変数の前に感嘆符(負の符号)を正しく使用していました。

!$varを示していますか?var false、空、設定されていないなどですか?

これが私が学ぶ必要があるいくつかの例です...

例1:

$string = 'hello';
$hello = (!empty($string)) ? $string : '';

if (!$hello)
{
    die('Variable hello is empty');
}

この例は有効ですか?$string空の場合、ifステートメントは実際に機能しますか?

例2:

$int = 5;
$count = (!empty($int)) ? $int : 0;

// Note the positive check here
if ($count)
{
   die('Variable count was not empty');
}

この例は有効でしょうか?

if ($var)上記の例は使用しません。ブール値のみを持つ変数に制限します。これらの例が有効かどうかを知る必要があるので、if ($var)ステートメントの使用を広げることができます。彼らは本当にきれいに見えます。

ありがとう。

4

4 に答える 4

23

if(! $a)と同じif($a == false)です。==また、演算子を使用するときに型変換が行われることを考慮に入れる必要があります。
詳細については、「==」セクションとの大まかな比較をご覧ください。そこから、文字列の「0」と「」はFALSEに等しくなります("0"==falseTRUEであり""==false、TRUEでもあります)。

投稿された例について:
例1
動作しますが、「0」と「」の両方が「空の」文字列であることに注意してください。

例2
動作します

于 2012-10-23T12:09:32.953 に答える
2

!否定します。trueはfalseになり、falseと評価されたものはすべてtrueになります。

PHPを作成していて、すべての演算子を完全に理解していない場合は、それらを完全に理解するまで1行のコードを記述しないでください。

http://php.net/manual/en/language.operators.php

これらは絶対的な基本です。

于 2012-10-23T12:02:12.470 に答える
0

ブールテスターです。空または偽。

于 2012-10-23T12:00:04.963 に答える
0

これはnotブール演算子です。詳細については、PHPのマニュアルを参照してください。

于 2012-10-23T12:01:41.177 に答える