1. 程式人生 > >echo 1+2+"3+4+5“輸出的結果是6

echo 1+2+"3+4+5“輸出的結果是6

            如上,為什麼echo 1+2+"3+4+5”輸出的結果是6呢?剛開始我也不是很明白,以為有問題,但在電腦上執行程式的時候,結果出現6 了。這讓我更加疑惑不解。現將問題解釋一番。

在php語言裡,對於數字式字元與數字如何參與運算,在具體情況下會視情來確定,例如:echo "3+4+5";  結果: 3+4+5 。因為將其視作是一個字串了。而當echo 1+2+"3+4+5”時,會將其視為一個表示式。這樣就涉及到PHP中不同資料型別運算的問題了。不同資料型別的資料在參與資料時,php會進行資料轉換,以儘量確保使表示式成

功執行,在"3+4+5"前面的運算子是 + ,那麼,php會將"3+4+5"當作數值型別,此時會隱式地進行資料型別的轉換,將

這個字串轉換成數值,php字串轉整數的規則是,從字串前部開始提取儘可能多的數字,後面非數字部分被丟

棄。"3+4+5"是字串,進入數值計算的時候,會將字串硬性的轉化為數值,一般是取第一個字串的值,如果是數

值型的字串,則是一個完整的數字。因此,"3+4+5"轉換成數值的結果就是3,所以,整個表示式的結果是:1+2+3 = 

6。