PHP - 逗號和點號的區別
阿新 • • 發佈:2018-03-06
PHP php逗號和點號的區別
php點號(.)和逗號(,)作用都是鏈接字符串
echo ‘點‘.‘號‘; //用點號連接字符串 輸出 點號
echo ‘逗‘,‘號‘; //用逗號連接字符串 輸出 逗號
效果是一樣的,但還是有很大區別
echo ‘1+99=‘ . 1+99; //輸出100
輸出的結果是100 而不是1+99=100
echo "1+99=" . 99+1; //輸出2
當把1和99換下位置.結果就變成了2
當把點號換成逗號
echo ‘1+99=‘ ,99+1; //輸出 1+99=100
echo ‘1+99=‘ , 1+99; //輸出 1+99=100
只有使用逗號得到結果才是想要的結果
那為什麽點號就不行呢?逗號為什麽就行呢?
echo ‘1+99=‘ . 99+1;
輸出2可以看出php字符串連接從左到右進行,所以是先連接字符串成"1+99=99"
然後再加1 ,即為"1+99=99"+1(字符串於數字相加)
那為什麽就會輸出2呢?
這個跟PHP字符串到數字的轉換,從左到右截取,知道碰到了不合法的數組,
截取出來的部分轉成數字,從左到右截取到第一個不是數字為止,如果第一個值
不是數字就直接返回0
echo (int)‘ccc100‘; //輸出0
echo (int)‘1abc‘; //輸出1
echo (int)‘10abc‘; //輸出10
echo (int)‘100abc‘; //輸出100
字符串"1+99=99" 強制類型轉換後得到的值就應該是1,在此基礎上+1 1+1當然是2了
echo ‘5+1=‘ . 1+5; //輸出10
echo ‘5+1=‘ . 5+1; //輸出6
echo ‘1+5=‘ . 1+5;//輸出6
echo ‘1+5=‘ . 5+1;//輸出2
為什麽使用逗號就沒有上面的問題了呢?
官方手冊上解釋.逗號是multiple parameters(多參數)
逗號分隔開就相當於是N個參數,也就是說把echo當做函數用
echo先對每個參數先進行計算,最後再進行連接後輸出
所以逗號不存在上面的問題
PHP - 逗號和點號的區別