PHP弱類型語(yǔ)言中類型判斷操作實(shí)例詳解
本文實(shí)例講述了PHP弱類型語(yǔ)言中類型判斷操作。分享給大家供大家參考,具體如下:
1、php一個(gè)數(shù)字和一個(gè)字符串進(jìn)行比較或者進(jìn)行運(yùn)算時(shí),PHP會(huì)把字符串轉(zhuǎn)換成數(shù)字再進(jìn)行比較。PHP轉(zhuǎn)換的規(guī)則的是:若字符串以數(shù)字開(kāi)頭,則取開(kāi)頭數(shù)字作為轉(zhuǎn)換結(jié)果,若無(wú)則輸出0。
例如:123abc轉(zhuǎn)換后應(yīng)該是123,而abc則為0,0==0這當(dāng)然是成立的.具體可以參考官方手冊(cè):如果比較一個(gè)整數(shù)和字符串,則字符串會(huì)被轉(zhuǎn)換為整數(shù)
$a = ($b=4)+5; echo $a; //9 echo '<p>'; var_dump(1=='1a'); //true echo '<p>'; var_dump(1=='2a'); //false echo '<p>'; var_dump(1=='a1'); //false echo '<p>'; var_dump("1"=='1a'); //false echo '<p>'; var_dump('51a'+6); //57 echo '<p>'; var_dump('a51'+6); //6
2、在PHP中,== 會(huì)先進(jìn)行類型轉(zhuǎn)換,再進(jìn)行對(duì)比,而===會(huì)先比較類型,如果類型不同直接返回不相等,參考如下示例
$a = null; $b = ''; $c = 0; echo ($a == $b) ? 1 : 0; // 輸出1 echo ($a === $b) ? 1 : 0; // 輸出0 echo ($a == $c) ? 1 : 0; // 輸出1 echo ($a === $c) ? 1 : 0; // 輸出0 echo ($b == $c) ? 1 : 0; // 輸出1 echo ($b === $c) ? 1 : 0; // 輸出0
3、php中的empty和isset函數(shù)
1)變量為:0,"0",null,'',false,array()時(shí),使用empty函數(shù),返回的都為true
2)變量未定義或者為null時(shí),isset函數(shù)返回的為false,其他都未true
$a = null; $b = ''; $c = 0; $d = "0"; $e = false; $f = array(); var_dump(empty($a)); //true echo '<p>'; var_dump(empty($b)); //true echo '<p>'; var_dump(empty($c)); //true echo '<p>'; var_dump(empty($d)); //true echo '<p>'; var_dump(empty($e)); //true echo '<p>'; var_dump(empty($f)); //true echo '<p>'; var_dump(isset($a)); //false echo '<p>'; var_dump(isset($b)); //true echo '<p>'; var_dump(isset($c)); //true echo '<p>'; var_dump(isset($d)); //true echo '<p>'; var_dump(isset($e)); //true echo '<p>'; var_dump(isset($f)); //true echo '<p>'; var_dump(isset($g)); //false
4、使用strpos之類的函數(shù)要用恒等于來(lái)判斷
$sms = "abc"; if(strpos($sms,'a') != false ){ echo 1; }else{ echo 2; }
這種情況,很明顯是判斷abc字符串中,是否包含a,預(yù)期結(jié)果應(yīng)該是要輸出1的,實(shí)際結(jié)果輸出為2。這是因?yàn)閟trpos函數(shù)匹配不到目標(biāo)字符串時(shí),返回false,匹配到了目標(biāo)字符串時(shí),會(huì)返回目標(biāo)字符串,在搜索字符串中的索引位置,此處返回了0。
$sms = "abc"; if(strpos($sms,'a') !== false ){ echo 1; }else{ echo 2; }
改成恒等于,才是正確的。
5、換行需要雙引號(hào)
$time = date('Y-m-d H:i:s').'\r\n'; file_put_contents('filename.txt', $time , FILE_APPEND);
如果這樣寫(xiě),打開(kāi)文件是這樣的2016-09-02 08:04:04\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:05\r\n2016-09-02 08:04:22
正確的寫(xiě)法是\r\n,使用雙引號(hào)包起來(lái)
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP基本語(yǔ)法入門(mén)教程》、《php字符串(string)用法總結(jié)》及《PHP數(shù)組(Array)操作技巧大全》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php數(shù)組函數(shù)序列之next() - 移動(dòng)數(shù)組內(nèi)部指針到下一個(gè)元素的位置,并返回該元素值
next() 函數(shù)把指向當(dāng)前元素的指針移動(dòng)到下一個(gè)元素的位置,并返回該元素的值。如果內(nèi)部指針已經(jīng)超過(guò)數(shù)組的最后一個(gè)元素,函數(shù)返回 false2011-10-10php實(shí)現(xiàn)向javascript傳遞數(shù)組的方法
這篇文章主要介紹了php實(shí)現(xiàn)向javascript傳遞數(shù)組的方法,涉及php數(shù)組轉(zhuǎn)json傳遞到j(luò)avascript的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07php將html轉(zhuǎn)成wml的WAP標(biāo)記語(yǔ)言實(shí)例
這篇文章主要介紹了php將html轉(zhuǎn)成wml的WAP標(biāo)記語(yǔ)言的方法,實(shí)例分析了php實(shí)現(xiàn)標(biāo)簽的轉(zhuǎn)換與過(guò)濾的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-07-07什么情況下可以不寫(xiě)PHP的閉合標(biāo)簽“?>”
這篇文章主要介紹了什么情況下可以不寫(xiě)PHP的閉合標(biāo)簽“?>”,是進(jìn)行PHP程序開(kāi)發(fā)需要特別注意的地方,需要的朋友可以參考下2014-08-08PHP面向?qū)ο蠖鄳B(tài)性實(shí)現(xiàn)方法簡(jiǎn)單示例
這篇文章主要介紹了PHP面向?qū)ο蠖鄳B(tài)性實(shí)現(xiàn)方法,簡(jiǎn)單說(shuō)明了面向?qū)ο蠖鄳B(tài)性的原理并結(jié)合具體實(shí)例給出了php實(shí)現(xiàn)多態(tài)性的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09幾個(gè)優(yōu)化WordPress中JavaScript加載體驗(yàn)的插件介紹
這篇文章主要介紹了幾個(gè)優(yōu)化WordPress中JavaScript加載體驗(yàn)的插件,一般來(lái)說(shuō)在WordPress中加載JavaScript最好使用wp_enqueue_script()函數(shù)以減少問(wèn)題提高效率,需要的朋友可以參考下2015-12-12