0

だから私はあなたがいつも使うJSLint構文を知っています===。PHPでは、私はいつもやってい==ます。==PHP では、「大まかに同じ」を===意味し、「厳密に同じ」を意味することを理解しています。2 つの質問があります。

===1) PHPで使用するのはベストプラクティスですか?(コードの一部を変更する必要があることはわかっています。)

2) Javascript の==and===は、PHP の場合と同じ違いを表していますか?

4

3 に答える 3

5

PHP==には、Javascript と比較してまったく新しい次元の WTF が含まれてい==ます。たとえば、PHP では==実際に数値の文字列を解析して比較します。たとえば、PHP"000" == "0"ではtrue. Javascriptではfalse 、文字列の等価性の合理的な定義により、明らかに2つの異なる文字列であるためです。

一般的なJavascript==に関して言えば、仕様にある実際のルールを読めば、そのルールは驚くほど単純です (平均的なジョーは明らかに仕様を読まないので、私はまだそれを使用しません)。PHP では===、仕様がないため、常に使用します。比較のアドホックな例にすぎません。たとえば、PHPソースコードの文字列解析について読む必要がありました。


PHP 文字列解析のもう 1 つの非常に興味深い効果は、==文字列を機械整数に解析できない場合、文字列として比較されることです。したがって、PHP が 32 ビットまたは 64 ビットのどちらで実行されているかによって、同じ等価比較でも異なる結果が得られる可能性があります。楽しい時間。

于 2013-07-04T15:56:35.487 に答える
0

PHP === では、値の型も確認したい場合に使用する必要があります。型が重要でない場合は、== のみを使用することをお勧めします。

于 2013-07-04T15:55:21.693 に答える
-1

はい=====PHP と同じように JavaScript でも同じ意味を持ちます。

===PHP でoverを使用することは必ずしもベスト プラクティスではありません==が、いつ使用するかを考慮する必要があります===

例 1:

<?php
$str = 'abcde';
if (strstr($str, 'a') == false {
    // This line will get printed as strstr() will return the position of a
    // which is 0 and 0 == false but 0 !== false so === is needed
    print 'a is not in the string';
}
?>

例 2:

<?php
$a = 1;
$b = '1';
$a == $b; //true
$a === $b //false
于 2013-07-04T16:01:45.317 に答える