0

「===」を次のように使用することの違いを誰か教えてください

if (null === $this->getName())

if ($this->getName() === null )

$this->getName が既に定義されている場合。

前もって感謝します

4

4 に答える 4

1

===またはを使用している限り違いはありません==

なぜ誰かがすべての値を左側に書いたのか疑問に思うかもしれません。これは、私たち開発者がタイプミスを忘れたりタイプミスしたりする傾向があるため==です=。これは偶発的な割り当てになります。

if($id=13){
  echo "foo";
}

上記のコードで問題を見つけるのは難しいです。と書かれているはずです$id==13。as と書く人13==$idは問題に対処する必要はありませ=13=$id。このようにして、エラーを検出することはほとんど不可能です。

于 2012-04-04T06:03:31.273 に答える
0

2つの条件に違いはありませんが、チェックする値を最初に配置するのが一般的な方法であるため、誤って条件チェックを代入操作に変えないでください。

// Conditional
if ($this->getName() === null )

// Assignment
if ($myName = null )

// Avoids the confusion of either the above
if (null === $this->getName())

is_null PHP関数を使用して、変数がnullかどうかをテストすることもできます。

于 2012-04-04T05:57:53.783 に答える
0

私が読んだことから、唯一の顕著な違いは、厳密に書く順序にあり、場合によっては、与えられたテストをより簡単に追跡できるようになります。

PHPが最初の用語を最初に評価することも検討しますが、どちらもとにかく評価されるため、これによって違いが生じることはありません。

于 2012-04-04T05:58:19.157 に答える
0

PHPの===演算子は対称であるため、それらは同一です。

于 2012-04-04T05:55:16.457 に答える