くそ

WBOY
WBOYオリジナル
2016-06-23 13:56:19833ブラウズ

<?php     $huancuns='[{"id":"1","time":"0"},{"id":"2","time":"0"}]';            if($huancuns=="null"||$huancuns==''||$huancuns==0)            {                             echo ("311");            }            else            {                               echo("211");            }?>


出力が 311.. 。くそ?


ディスカッションへの返信(解決策)

$huancuns==0 は成立していませんか?
$huancuns === 0 は真実ではありません

$huancuns==0 は真実ではありませんか?
$huancuns === 0 は真実ではありません



'[{"id":"1","time":"0"},{"id":"2","time":"0"} ] ' これは 0 に等しいですか? ? ?

文字列を数値に変換します。文字列の先頭が数値でない場合、結果は 0 になります。

これの何がそんなに驚くべきですか?

var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
bool(本当)

これの何がそんなに驚くべきですか?

var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
bool(true)



学習したら、ふふ、 == 0 を外した方が良いです

この種の判定は
if(empty($huancuns)) {
//空の場合の処理​​
}

変数が null か 0 "" "0" かを判定... empty($str) を使用して比較します

両端のどちらかが数値の場合は数値に変換して比較します。
こんな風に書けます

            if(!$huancuns) {                echo ("311");            }else{                echo("211");            }

empty or!
== と()を付けない両方でおかしな現象が起こります...
これは仕組みに関係しています

$huancuns==0 // 去掉这个条件可能是把这个字符串转化成了数字,但是转换失败了,直接就给转成了 0 。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。