萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php中怎麼區別false與0

php中怎麼區別false與0

PHP中當變量為0時,該變量同時也就“等於”false,那麼如何區別0和false?這在有些條件語句中就很有用了,本文將舉例說明。

首先看代碼:

本代碼的功能是查找一個字符串中是否以某個詞語開頭

 代碼如下 復制代碼

$title = "Hello world.";

$keyword = "you";

if(strpos($title , $keyword ) == 0) {

    echo "正確";

} else {

    echo "錯誤";

}

輸出:正確

好像代碼沒錯啊?為什麼結果錯了?查看幫助手冊看到strpos()函數在字符串中查找詞語的時候,如果存在該詞語則返回該詞語的索引位置,否則返回false,於是把代碼做如下修改。

 代碼如下 復制代碼

if(strpos($title , $keyword ) == 0) {

    echo "正確";

} else if(strpos($title , $keyword ) == false) {

    echo "錯誤";

}

輸出:正確

怎麼又是錯的?原來PHP中當變量為0時,該變量同時也就“等於”false,那麼如何區別0和false?其實很簡單,把代碼再修改一下:

 代碼如下 復制代碼

if(strpos($title , $keyword ) === 0) {

    echo "正確";

} else if(strpos($title , $keyword ) === false) {

    echo "錯誤";

}

輸出:錯誤

 代碼如下 復制代碼

<?php
/*
 * 測試boolean
 * 0 false
 */
 $num = 0;
 $bTest1 = false;
 $bTest2 = true;
 $strTest2 = 'false';
 if($num == $bTest1)
 {
  echo ('數字0與false是可以相等的');//顯示
 echo ("<br/>");
 }
 if($bTest1)
 {
  echo('永不執行啊<br/>');//不顯示
 }
 if(1)
 {
  echo('會執行嗎,<br/>');//執行
 }
 if($bTest2)
 {
  echo('我是老大我要執行<br/>');//執行
  
 }
 else{
  echo('不要的都歸我了哦<br/>');
 }
 echo (false == 0);//顯示1 表示相等
 echo (true == 1);//顯示1 表示相等
function testReturn ()
{
 echo('aaaaa');
 return;
 return 'bbbb';
 echo('cccc');
}
//return 表示該函數的返回就是執行到這下面的都將不執行了,exit是推出程序
echo testReturn();//調用該函數 將輸出 ‘aaaa' ’bbbbb'
?>

很多時候false也等於0,當我們要返回的值中含有0的時候,例如對數字的查詢就要注意了,可以用===來判斷是否完全相等,

PHP 有一個 gettype() 函數,得到變量的類型。可以使用 === 運算符(看好了,有三個等號)。和 == 運算符 的區別在於該運算符同時比較數據的值和類型。
 
當終止條件中涉及不同的變量類型時,通過使用 ===和 !==運算符進行強類型檢查是很重要的。

copyright © 萬盛學電腦網 all rights reserved