首先簡單介紹下strpos函數;
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、虛擬空間、營銷軟件、網站建設、湖濱網站維護、網站推廣。strpos函數是查找某個字符在字符串中的位置;這里需要明確這個函數的作用;
這個函數得到的是位置;如果存在;返回數字;否則返回的是false;
而很多時候我們拿這個函數用來判斷字符串中是否存在某個字符;
一些同學使用的姿勢是這樣的;
// 判斷‘白俊遙博客’中是否存在‘博客’這個詞 if (strpos('白俊遙博客', '博客')) { // 如果存在執行此處代碼 echo '存在'; }else{ // 如果不存在執行此處代碼 echo '不存在'; }
這段代碼輸出的是'存在';沒什么問題;但是再看下面這段代碼;
// 判斷‘白俊遙博客’中是否存在‘白’這個字 if (strpos('白俊遙博客', '白')) { // 如果存在執行此處代碼 echo '存在'; }else{ // 如果不存在執行此處代碼 echo '不存在'; }
輸出了'不存在';原因是因為 '白' 在 '白俊遙博客' 中的第0個位置;而0在if中表示了false;
所以;如果用strpos來判斷字符串中是否存在某個字符時必須使用===false 、必須使用===false、必須使用===false
重要的事情說三遍;正確的使用方式如下;
// 判斷‘白俊遙博客’中是否存在‘博客’這個詞 if (strpos('白俊遙博客', '博客')===false) { // 如果不存在執行此處代碼 echo '不存在'; }else{ // 如果存在執行此處代碼 echo '存在'; }
你以為用上了===你就得到了strpos的整個世界?no;no;no;
這家伙還有個隱藏坑;我來換個詞;
// 判斷‘白俊遙博客1’中是否存在‘1’這個數字 if (strpos('白俊遙博客1', 1)===false) { // 如果不存在執行此處代碼 echo '不存在'; }else{ // 如果存在執行此處代碼 echo '存在'; }
如果你腦算出來的上面這段代碼輸出的是‘存在’;
那你這完全沒跟上我的套路啊;不是技能的問題了;
是時候為智商討個說法了;
事實上輸出的是'不存在';細心的童鞋會發現這個1 是不帶引號的;
strpos的第二個參數必須是字符串型的;
因此;如果你是在循環或者其他情況下調用的strpos函數;而且不確定第二個參數的類型;
那么保險的方式是用strval把它轉字符串類型了:
// 判斷‘白俊遙博客1’中是否存在‘1’這個數字 $haystack='白俊遙博客1'; $needle=1; if (strpos($haystack, strval($needle))===false) { // 如果不存在執行此處代碼 echo '不存在'; }else{ // 如果存在執行此處代碼 echo '存在'; }
本文為白俊遙原創文章,轉載無需和我聯系,但請注明來自白俊遙博客http://www.baijunyao.com
創新互聯www.cdcxhl.cn,專業提供香港、美國云服務器,動態BGP最優骨干路由自動選擇,持續穩定高效的網絡助力業務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節活動現已開啟,新人活動云服務器買多久送多久。
網頁名稱:論strpos的正確使用方式-創新互聯
當前URL:http://vcdvsql.cn/article48/csephp.html
成都網站建設公司_創新互聯,為您提供動態網站、外貿建站、Google、網站制作、網站設計、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯