php通過各種函數(shù)判斷0和空的方法-創(chuàng)新互聯(lián)

這篇文章主要介紹了php通過各種函數(shù)判斷0和空的方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為富蘊(yùn)企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作,富蘊(yùn)網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

函數(shù)對0的判斷

  $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

對空的判斷

  $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

補(bǔ)充:下面給大家介紹下php 語法里0不等于null為空的解決辦法

今天遇到這樣一個(gè)問題是這樣的: php 語句里,我想判斷一個(gè)值大于等于0. 我是使用 ($value !=null && $value >=0), 返回的結(jié)果為空,這點(diǎn)真的好奇怪。

實(shí)驗(yàn)總結(jié):

php 語句如下:

$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>";//

結(jié)果:

A: 0
B:
C: 1
 D:

要判斷一個(gè)數(shù)值[該數(shù)組可能為空等]大于等于0, 可用另外一個(gè)方法:  is_numeric($index) === true

$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);
 }

這個(gè)很奇怪,終于解決了。Mark 一下。

 總結(jié):php的語句稍有些怪異,從其它編程語言轉(zhuǎn)來的同學(xué)們一定多加小心謹(jǐn)慎,注意慣性思維及語法差異點(diǎn)啊,避免陷入坑中。

其它資料:

原因是在PHP中變量是以C語言的結(jié)構(gòu)體來存儲的,空字符串和NULL,false都是以值為0存儲的,其中這個(gè)結(jié)構(gòu)體有個(gè)zend_uchar type;這樣的成員變量,他是用來保存變量的類型的,而空字符串的類型是string,NULL的類型是NULL,false是boolean。

這一點(diǎn)可以用echo gettype('');echo gettype(NULL);來打印看看!而===運(yùn)算符是不單比較值,還有比較類型的,所以第三個(gè)為false!

另外再說下,php中

=     一個(gè)等號是賦值
==    兩個(gè)等號是判斷相等且只比較值,不比較類型
===   三個(gè)等號是判斷值和類型都相等
!=    不等于符號,只比較值,不管類型
!==   不全等符號,比較值和類型

所以 空字符串(''),false, NULL 和 0是值相等而類型不一樣!

注意:

NULL是一種特殊的類型.

兩種情況下為NULL

 1. $var = NULL;
 2. $var;
3.""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象都將被認(rèn)為是空的,如果 var 為空,則返回 TRUE。

PHP中區(qū)分0和空

function test()
{
  $a = 0;
  $b = '';
  $c = null;

  // 區(qū)分 0、''、null

  // 1、方法一
  if ($a !== '') {
    echo '0和null';
  } else {
    echo '空字符串';
  }

  // 2、方法二
  if ($a !== null) {
    echo '0和空字符串';
  } else {
    echo 'null';
  }

  // 3、方法三
  if (strlen($a) > 0) {
    echo '0';
  } else {
    echo '空字符串和null';
  }

  // 以上三種方法都只能把其中一個(gè)和另外兩個(gè)區(qū)分出來,如果需要3個(gè)單獨(dú)區(qū)分,需要結(jié)合使用
}

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“php通過各種函數(shù)判斷0和空的方法”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

網(wǎng)站標(biāo)題:php通過各種函數(shù)判斷0和空的方法-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://www.muchs.cn/article26/cshhjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、企業(yè)建站、用戶體驗(yàn)App開發(fā)、軟件開發(fā)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司