<?php $huancuns='[{"id":"1","time":"0"},{"id":"2","time":"0"}]'; if($huancuns=="null"||$huancuns==''||$huancuns==0) { echo ("311"); } else { echo("211"); }?>
$huancuns==0 は成立していませんか?
$huancuns === 0 は真実ではありません
$huancuns==0 は真実ではありませんか?
$huancuns === 0 は真実ではありません
文字列を数値に変換します。文字列の先頭が数値でない場合、結果は 0 になります。
これの何がそんなに驚くべきですか?
var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
これの何がそんなに驚くべきですか?
var_dump('[{"id":"1","time":"0"},{"id":"2","time":"0"}]' == 0);
この種の判定は
if(empty($huancuns)) {
//空の場合の処理
}
変数が null か 0 "" "0" かを判定... empty($str) を使用して比較します
両端のどちらかが数値の場合は数値に変換して比較します。
こんな風に書けます
if(!$huancuns) { echo ("311"); }else{ echo("211"); }
empty or!
== と()を付けない両方でおかしな現象が起こります...
これは仕組みに関係しています
$huancuns==0 // 去掉这个条件可能是把这个字符串转化成了数字,但是转换失败了,直接就给转成了 0 。