!$foo = new Bar($var, $var2);
PHPコードの一部を見つけました。何 "!" 意味?
3 に答える
4
!!この例では単なる否定であり、役に立たない。
于 2012-07-09T09:02:33.943 に答える
1
特別なことは何も意味しません。タイプミスがあると思います。
次のコードを検討します。
$foo = new Bar($var, $var1);
var_dump(!$foo); // bool(false)
var_dump($foo == true); // bool(true)
- オブジェクトをブール値にキャストすると、常に。になり
true
ます。 - オブジェクトをなしで別のオブジェクトと比較すると、
===
常に。になりtrue
ます。
したがって、割り当ての左側にあるオブジェクトに否定を使用しても、ここでは何の効果もありません。
于 2012-07-09T09:07:12.070 に答える
1
この文脈では、それはまったく何の意味もありません。
!
は「論理否定」演算子であり、評価対象をに変換TRUE
しFALSE
、その逆も同様です。PHPでは他に特別な意味はありません。
これは、ブールテストまたは割り当ての一部としてのみ実際に意味があります。次に例を示します。
$false = FALSE;
if (!$false) {
// This code will be executed
}
$true = !$false;
// $true will now be TRUE
あなたの例で使用されているコンテキストでは、オブジェクトのインスタンス化は2つのことのうちの1つしか実行しないため、意味がありません。
- オブジェクトを返します-ブールテストでは、すべてのオブジェクトのすべてのインスタンスが評価されますが
TRUE
、1つの例外は空SimpleXMLElement
です。 - 例外をスローします。この場合、新しいインスタンスが割り当てられる変数には以前の値(falseと評価される可能性があります)が残りますが、実行すると現在のプロシージャがすぐに終了するため、テストが評価されることはありません。
于 2012-07-09T10:18:41.487 に答える