一、問題一關於弱類型php
$str1 = 'yabadabadoo'; $str2 = 'yaba'; if (strpos($str1,$str2)) { echo "\\"" . $str1 . "\\" contains \\"" . $str2 . "\\""; } else { echo "\\"" . $str1 . "\\" does not contain \\"" . $str2 . "\\""; }
正確運行的輸出結果:code
"yabadabadoo" does not contain "yaba"字符串
strpos是返回字符串str2在str1的位置,沒有找到則返回false然而實際上此次返回了0而在if語句中0也被看成false,因此,咱們須要對false作類型判斷,正確的代碼以下:效率
$str1 = 'yabadabadoo'; $str2 = 'yaba'; if (strpos($str1,$str2) !== false) { echo "\\"" . $str1 . "\\" contains \\"" . $str2 . "\\""; } else { echo "\\"" . $str1 . "\\" does not contain \\"" . $str2 . "\\""; }
須要注意的是咱們使用了!==,在php 和 JS中= !相對== 更爲嚴格須要要求數據類型的一致。數據類型
二、下面的輸出結果會是怎樣?程序
$x = 5; echo $x; echo " "; echo $x+++$x++; echo " "; echo $x; echo " "; echo $x---$x--; echo " "; echo $x; 實際運行結果是 5 11 7 1 5
x++和x++和x--這個問題其實很是容易碰見,咱們只需記住$x++使用最近的值,而後才自增。數據
運算符的優先級,++ 是明顯高於 +,所以先執行++ 再執行 + 。關於運算符的優先級,有的時候咱們真的能夠經過括號來讓咱們的程序更加讓人直觀的瞭解,畢竟代碼它不光是用於執行的,有的時候或許團隊的可讀性也是提升效率的一種。co