您好,登錄后才能下訂單哦!
先來(lái)看strpos的用法:
(PHP 4, PHP 5, PHP 7)
strpos — 查找字符串首次出現(xiàn)的位置
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
返回 needle 存在于 haystack
字符串起始的位置(獨(dú)立于 offset)。同時(shí)注意字符串位置是從0開始,而不是從1開始的。
如果沒找到 needle,將返回 FALSE
。(請(qǐng)注意這種情況下的返回值)
2. 實(shí)例說(shuō)明(產(chǎn)生問題的錯(cuò)誤代碼)
<?php $str = 'this is phper !'; if(strpos($str, 't')){ echo 't 存在'; }else{ echo 't 不存在'; } ?>
新手容易犯的就是對(duì)于if的真值判斷,由于該函數(shù)在沒有找到對(duì)應(yīng)字符的情況下,返回值為false,所以就會(huì)出現(xiàn)這種判斷來(lái)處理找到和沒找到的情況。由這個(gè)例子的結(jié)果可以看出,字符‘t’其實(shí)是存在的,而且也被找到了,并且返回了該字符的位置值,即0,因?yàn)?為假值,程序就會(huì)執(zhí)行else中代碼,導(dǎo)致程序運(yùn)行結(jié)果與預(yù)期結(jié)果不一致,從而產(chǎn)生了所謂的邏輯錯(cuò)誤。
3. 正確代碼(解決方法)
<?php $str = 'this is phper !'; if(false !== strpos($str, 't')){ echo 't 存在'; }else{ echo 't 不存在'; } ?>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。