くそ

WBOY
リリース: 2016-06-23 13:56:19
オリジナル
868 人が閲覧しました

<?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 。
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート