PHPは無視されやすく、エラー・罠数字と文字列の比較ができます。
0は、任意の非数字(または、数字に変換できない文字)の先頭の文字列と比較し(オペレータは=)、すべてtrueに戻ります。
理由は、数字と文字列を比較する場合、まず文字列を数字に変換して比較してみます。一つは数字に変換できない文字列で、変換結果は0です。したがって、0と比較すると、常にtrueに戻ります。
もっと詳しい比較規則、多様な種類の比較規則、PHPマニュアル/言語参照/演算子/比較演算子で見つけられます。PHPでは、2つの数字型文字列(数字のみを含む文字列)を比較すると、直接数値に変換して比較します。(注意$aとbの2つの変数の最後のビットは同じではないです。)
&噫13;
if($!=jQuery/&嚖13;
ドル=jQuery.noConflit()&13;
}&{13;
var isLogirld=false;&萶13;
var cb_blogId=51910;13;
var cb_entryId=2241671;13;
var cb_blogApp=「heiing」13;
var cb_blogUserGrid="3 cf 516 b 0-1 cf 5-dd 11-9 e 4 d-0010 cf 0 cd 104 b"13;
var cb_ntryCreatedDate='2011/11/8 21:00';13;
理由は、数字と文字列を比較する場合、まず文字列を数字に変換して比較してみます。一つは数字に変換できない文字列で、変換結果は0です。したがって、0と比較すると、常にtrueに戻ります。
もっと詳しい比較規則、多様な種類の比較規則、PHPマニュアル/言語参照/演算子/比較演算子で見つけられます。PHPでは、2つの数字型文字列(数字のみを含む文字列)を比較すると、直接数値に変換して比較します。(注意$aとbの2つの変数の最後のビットは同じではないです。)
// 1
<?php
$a = '511203199106034578';
$b = '511203199106034579';
if ($a==$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>
で上記のプログラムを実行していますが、結果はequalです。aとbそれぞれ1つのアルファベットaを入れて
// 2
<?php
$a = 'a511203199106034578';
$b = 'a511203199106034579';
if ($a==$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>
に入ります。今回出力したのはnotEqual(正しい結果)の例1はequalです。PHPが2つの数字型文字列を数字型に変換したからです。この2つの数字はちょうど以下の例の
<?php
$a = 511203199106034578;
$b = 511203199106034579;
echo $a; // 5.1120319910603E+17 511203199106030000
echo $b; // 5.1120319910603E+17 511203199106030000
?>
に等しいので、例1で得られた結果は、equalがこのような予期せぬ結果を発生させないようにする場合は、タイプ比較子==以下の例(もし$aが$bに等しいならば、それらのタイプも同じ)
// 4
<?php
$a = '511203199106034578';
$b = '511203199106034579';
if ($a===$b) {
echo 'equal';
} else {
echo 'notEqual';
}
?>
を使用して、期待されるnotEqualを得ることができる。&噫13;
if($!=jQuery/&嚖13;
ドル=jQuery.noConflit()&13;
}&{13;
var isLogirld=false;&萶13;
var cb_blogId=51910;13;
var cb_entryId=2241671;13;
var cb_blogApp=「heiing」13;
var cb_blogUserGrid="3 cf 516 b 0-1 cf 5-dd 11-9 e 4 d-0010 cf 0 cd 104 b"13;
var cb_ntryCreatedDate='2011/11/8 21:00';13;