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等非数字,在字符串连接时没有问题,但在算术运算中就出现了问题,这时候就涉及到了:

字符串转换为数值,从字符串第一个字符开始,如果是数值就转换,然后就继续匹配,知道遇到非数值类型的字符,后面的就不再处理。

猜你喜欢

转载自blog.csdn.net/qq_41912073/article/details/83895207