函數對0的判斷php
1編程 2數組 3編程語言 4函數 5url |
|
對空的判斷
1 2 3 4 5 |
|
補充:下面給你們介紹下php 語法裏0不等於null爲空的解決辦法
今天遇到這樣一個問題是這樣的: php 語句裏,我想判斷一個值大於等於0. 我是使用 ($value !=null && $value >=0
), 返回的結果爲空,這點真的好奇怪。
實驗總結:
php 語句以下:
1 2 3 4 5 |
|
結果:
1 2 3 4 |
|
要判斷一個數值[該數組可能爲空等]大於等於0, 可用另一個方法: is_numeric($index) === true
1 2 3 4 5 6 7 8 9 |
|
這個很奇怪,終於解決了。Mark 一下。
總結:php的語句稍有些怪異,從其它編程語言轉來的同窗們必定多加當心謹慎,注意慣性思惟及語法差別點啊,避免陷入坑中。
其它資料:
緣由是在PHP中變量是以C語言的結構體來存儲的,空字符串和NULL,false都是以值爲0存儲的,其中這個結構體有個zend_uchar type;這樣的成員變量,他是用來保存變量的類型的,而空字符串的類型是string,NULL的類型是NULL,false是boolean。
這一點能夠用echo gettype('');
和echo gettype(NULL);
來打印看看!而===運算符是不單比較值,還有比較類型的,因此第三個爲false!
另外再說下,php中
= 一個等號是賦值
== 兩個等號是判斷相等且只比較值,不比較類型
=== 三個等號是判斷值和類型都相等
!= 不等於符號,只比較值,無論類型
!== 不全等符號,比較值和類型
因此 空字符串(''),false, NULL 和 0是值相等而類型不同!
注意:
NULL是一種特殊的類型.
兩種狀況下爲NULL
1. $var = NULL; 2. $var; 3.""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認爲是空的,若是 var 爲空,則返回 TRUE。