この記事では、PHP がさまざまな関数を通じて 0 と空をどのように判断するかを主に紹介します。必要な友達にそれを共有します
。 nullの判定
$cast_id = 0;
var_dump(strlen($cast_id)); //1
var_dump(empty($cast_id)); // true
var_dump(isset($cast_id)); //true
var_dump(is_null($cast_id));//false
補足:PHPの構文で0がnullに等しくない問題の解決策を紹介します
今日はこんな問題に遭遇しました。 php ステートメントで、値が 0 以上であるかどうかを判断したいと考えています。($value !=null && $value >=0
) を使用すると、返される結果は空です。本当に不思議です。 実験の概要:
phpステートメントは次のとおりです: $value !=null && $value >=0
), 返回的结果为空,这点真的好奇怪。
实验总结:
php 语句如下:
$cast_id = ""; var_dump(strlen($cast_id)); //0 var_dump(empty($cast_id)); // true var_dump(isset($cast_id)); //true var_dump(is_null($cast_id));//false
结果:
$index=0; echo "A: ".$index."<br>"; //0 echo "B: ".($index !=null && $index >=0)."<br>";// echo "C: ".(isset($index) && $index >=0)."<br>";//1 echo "D: ".(0 !=null)."<br>";//
要判断一个数值[该数组可能为空等]大于等于0, 可用另外一个方法: is_numeric($index) === true
A: 0 B: C: 1 D:
这个很奇怪,终于解决了。Mark 一下。
总结:php的语句稍有些怪异,从其它编程语言转来的同学们一定多加小心谨慎,注意惯性思维及语法差异点啊,避免陷入坑中。
其它资料:
原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean。
这一点可以用echo gettype('');
和echo gettype(NULL);
$index=array_search($url, $contentOtherStr, true); //值大于等于0, 即存在 if(is_numeric($index) === true) { echo "$url existed. "."<br>"; }else{ echo "$url Add. "."<br>"; array_push($contentOtherStr, $url); }
結果:
rrreee
値[配列が空である可能性があるなど]が0以上であるかどうかを判断するには、別の方法を使用します。 is_numeric($index) === true
rrreee
これは非常に奇妙であり、最終的に解決されました。マーク。 要約: PHP のステートメントは少し奇妙です。他のプログラミング言語から移行した学生は、落とし穴に落ちないように、慣性的思考と文法の違いにさらに注意を払う必要があります。その他の情報:
その理由は、PHP の変数は、空の文字列、NULL、および false がすべて値 0 で格納されるためです。この構造には、そのようなメンバー変数があります。は変数の型を保存するために使用され、空の文字列の型は string、NULL の型は NULL、false はブール値です。
これは、echo gettype('');
と echo gettype(NULL);
を使用して出力できます。 === 演算子は値を比較するだけでなく、型も比較するため、3 番目の演算子は false になります。
さらに、PHP では、
= 1 つの等号は代入です== 2 つの等号は、等しいかどうかを判断し、型ではなく値のみを比較するために使用されます=== 3 つの等号は、両方の値を決定するために使用されます。型が等しい
!= 等しくない記号、型に関係なく値のみを比較します
空の文字列 ('')、false、NULL、0 は等しい値ですでも種類が違う
!注:
NULL は特殊な型です。🎜🎜 2 つの場合は NULL です🎜🎜 1. $var = NULL;🎜 2. $var;🎜3.""、0、"0"、NULL 、FALSE 、array()、var $var; および属性のないオブジェクトは、var が空の場合、TRUE が返されます。 🎜🎜🎜関連する推奨事項: 🎜🎜🎜テンプレートへの配列の代入とテンプレートへの extract() 変数の代入を実装するための🎜🎜🎜PHP カスタム関数🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜以上がPHP はさまざまな関数を通じて 0 と空を判定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。