那些值得思考的PHP问题
生活随笔
收集整理的這篇文章主要介紹了
那些值得思考的PHP问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
那些值得思考的PHP問題
1、關(guān)于弱類型
函數(shù)strpos是返回字符串str2在str1的位置,沒有找到則返回false,然而如果在實際應(yīng)用上返回的位置是0,在if語句中0也被當(dāng)作false,所以我們需要對false做類型判斷,
$str1 = 'yabadabadoo'; $str2 = 'yaba'; if (strpos($str1,$str2)!==false) { echo $str1 . " contains " . $str2 ; } else {echo $str1 . "does not contain ".$str2 ; } //輸出 yabadabadoo does not contain yaba//改進(jìn)部分 strpos($str1,$str2) !== false //輸出 yabadabadoo contains yaba2、關(guān)于運(yùn)算符的優(yōu)先級
關(guān)于 x++和x–這個問題其實非常容易遇見,我們只需記住$x++使用最近的值,然后才自增。
運(yùn)算符的優(yōu)先級,++ 是明顯高于 +,因此先執(zhí)行++ 再執(zhí)行 + 。關(guān)于運(yùn)算符的優(yōu)先級,有的時候我們真的可以通過括號來讓我們的程序更讓人直觀的了解,畢竟代碼不光是用于執(zhí)行的,有的時候或許團(tuán)隊的可讀性也是提高效率的一種。
echo $x; echo " "; echo $x+++$x++; echo " "; echo $x; echo " "; echo $x---$x--; echo " "; echo $x; //結(jié)果 5 11 7 1 53、關(guān)于變量的引用
$a = '1'; $b = &$a; $b = "2$b";4、關(guān)于等號和恒等號
//下面是true還是false var_dump(0123 == 123); // false,PHP會默認(rèn)把0123當(dāng)作8進(jìn)制來處理,實際轉(zhuǎn)化為10進(jìn)制就是83,顯然這不是相等的。 var_dump('0123' == 123); // true這里php會非常有趣的將’0123′轉(zhuǎn)換成一個數(shù)字而且默認(rèn)去掉了前面的0也就是123==123 var_dump('0123' === 123);// false很顯然上面的問題已經(jīng)說過了數(shù)字和字符串類型不一致。5、關(guān)于自動轉(zhuǎn)換,如果我們在與字符串進(jìn)行數(shù)學(xué)運(yùn)算,實際php會盡可能將字符串中的數(shù)組進(jìn)行轉(zhuǎn)換,如果是數(shù)字開頭的話則轉(zhuǎn)換成改數(shù)字比如”15%”會變成15,如果不是數(shù)字開頭則會變成0。
$x = 3 + "15%" + "$25" //等同于 $x = 3 + 15 + 06、字符串用數(shù)組的形式訪問
$text = 'John '; $text[10] = 'Doe'; //運(yùn)行結(jié)果為 John D //$text = “John D”(John后面會有連續(xù)的5個空格) strlen($text)會返回11,$text[10] = “Doe”給某個字符串具體的某個位置具體字符時候,實際只會把D賦給$text. 雖然$text才開始只有5個自負(fù)長度,但是php會默認(rèn)填充空格
總結(jié)
以上是生活随笔為你收集整理的那些值得思考的PHP问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 安全编程建议
- 下一篇: 中南大学和中山大学计算机专业哪个好,中山