1. 程式人生 > >PHP中字串連線符相關內容

PHP中字串連線符相關內容

在PHP中字串連線用英文半形狀態下的點“.”,字串連線符當遇到非字串型別的變數時會先轉換為字串型別再進行連線。例如:

<?php
$m = '3';
$n = '7';
echo $m . $n;//37
//$m $n均為字串型別,直接進行連線

$m = '3';
$n = 7;
echo $m . $n;//37
//在這種情況下,$n的型別時數值,這時候會先把$n的值轉換為字串'7',再和$m進行連線

然而在像Java這樣的語言中字串連線用“+”,但在PHP中“+”只能中加法運算,不能連線兩個字串。例如

<?php
$m = 6;
$n = 3;
echo $m . $n;//63
echo $m + $n;//9

$m = '6';
$n = 3;
echo $m . $n;//63
echo $m + $n;//9
//當做算術運算時,會先將變數的值轉換為數值型別,在進行運算

由以上兩段程式碼可以看出,不管是進行字串連線時還是算術運算時,都會有一個數據型別的自動轉換。

再看一段程式碼

<?php
$m = '5a';
$n = 7;
echo $m . $n;//5a7
echo $m + $n;//12

$m = 'a5';
$n = 7;
echo $m . $n;//a57
echo $m + $n;//7

$m = '5a8';
$n = 7;
echo $m . $n;//5a87
echo $m + $n;//12

在之前的程式碼中算術運算時雖然涉及到了資料型別的自動轉換,但是字元穿內的內容為純數字,但當字串中出現了a等非數字,在字串連線時沒有問題,但在算術運算中就出現了問題,這時候就涉及到了:

字串轉換為數值,從字串第一個字元開始,如果是數值就轉換,然後就繼續匹配,知道遇到非數值型別的字元,後面的就不再處理。