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