PHP-逗号与点号的区别

一、String转int

字符串与数字相加,字符串先转成int,再计算。

如果将一个字符串强制转换成一个数字.PHP会去搜索这个字符串的开头.
如果开头是数字就转换.如果不是就直接返回0。

var_dump((int)'abc1');   //输出 int 0
echo "<br>";
var_dump((int)'1abc'); //输出 int 1
echo "<br>";
var_dump((int)'2abc'); //输出 int 2
echo "<br>";
var_dump((int)'22abc'); //输出 int 22
echo "<br>";
var_dump((int)'1+5=5'); //输出 int 1
echo "<br>";
//+ 此处为加法运算,字符串2转化为int2,再与int1相加,结果为3
var_dump('2' + 1); //输出 int 3(注意此处是int)
echo "<br>";
//. 的意思是将变量字符串连接。
var_dump('2' . 1); //输出 string '21' (length=2)
echo "<br>";

二、逗号与点号

逗号与点号都是连接字符串, 逗号的效率比点号高。

+.   //加、减、点号的优先级一致,按照从左到右的的结合方向决定求值顺序。

,	   //逗号优先级低于上面三个

点号:先计算(计算的值放在前面),再拼接输出。
逗号:先以逗号分割,再分别计算,最后从左往右拼接输出

//  .的意思是将变量字符串连接。
/*点号:先计算(计算的值放在前面),再拼接输出,*/
//字符串与数字相加,字符串先转成int,再计算
echo "1+5=" . 5 + 1;    //1+5=5与1相加,输出2
echo "<br>";
echo ('1+5=' . 5) + 1;   //1+5=5与1相加,输出2
echo "<br>";
echo '1+5=' . 1 + 5;    //1+5=5与5相加,输出6
echo "<br>";
echo ('1+5=' . 1) + 5;    //1+5=5与5相加,输出6
echo "<br>";

/*逗号:先以逗号分割,再分别计算,最后拼接输出*/
//PHP在echo的时候可以把变量和字符串用,分隔然后输入。
/*逗号分隔开的就相当于是N个参数.也就是说把echo当个函数用.
这样的话.echo会对每个参数先进行计算.最后再进行连接后输出.所以我们用逗号就不存在上面的问题*/
echo "1+5=", 5 + 1;    //输出1+5=6
echo "<br>";
echo '1+5=', 1 + 5;    //输出1+5=6


echo "<br>";
$a = 'aaa';
$b = 'bbb';
echo $a, $b, 'ccc';//aaabbbccc
//相当于
//echo $a;
//echo $b;
//echo 'ccc';
echo "<br>";

echo $a . $b . 'ccc';//aaabbbccc,从左到右依次拼接
echo "<br>";

函数相关的问题:

示例一:

/*----------------------------------------------------------------------*/

function test()
{
    echo "222";
}

echo "111", test(), "333";//111222333//无返回值,错误的写法
echo "<br>";
echo "111" . test() . "333";//222111333
//先计算test输出222,再连接111与test的返回值,然后再连接333,因为test无返回,最后输出:222111333
echo "<br>";
echo "111" . "222" . "333";//111222333
echo "<br>";

/*-------------------------------------------------------------------------*/
function myfunc($argument)
{
    echo $argument + 10;//输出
}

$variable = 10;
echo "myfunc($variable)=" . myfunc($variable);
//输出:20myfunc(10)=
//先计算myfunc输出20,再连接myfunc($variable)=与myfunc的返回值,因为myfunc无返回,最后输出:20myfunc(10)=
echo "<br>";
echo "myfunc($variable)=", myfunc($variable);//
//输出:myfunc(10)=20

示例二:

<?php
/*-------------------------------有返回值 函数------------------------------*/
function add1($x, $y)
{
    $total = $x + $y;

    return $total;
}

echo add1(1, 16);// 17
echo "1 + 16 = " . add1(1, 16);//1 + 16 = 17
//先计算add1(1, 16)=17
//在连接"1 + 16 = " .17
//最后结果:"1 + 16 = 17"
echo "1 + 16 = ", add1(1, 16);//1 + 16 = 17
//先echo "1 + 16 = ",即输出:1 + 16 =
//在echo add1(1, 16),即输出:17
//最后拼接:1+16=17

/*-------------------------------无返回值 函数------------------------------*/
function add2($x, $y)
{
    $total = $x + $y;

    echo $total;
}

add2(1, 16);//17
echo add2(1, 16);//17,无返回值的函数不可使用返回值,此处错误
echo "1 + 16 = " . add2(1, 16);//171 + 16 =
//先计算add2(1, 16),此处输出17
//在连接"1 + 16 = "与add2函数,因为add2函数无返回值,所以结果输出:1 + 16 =
//最后输出:171 + 16 =
echo "1 + 16 = ", add2(1, 16);//1 + 16 = 17//无返回值的函数不可使用返回值,此处错误

/*-------------------------------有返回值 函数------------------------------*/
function add3($x, $y)
{
    $total = $x + $y;
    
    echo $total;
    return $total;
}

add3(1, 16);//17
echo add3(1, 16);//1717
//先add3中输出17
//在echo add3的返回值即17;
//最后结果为:1717
echo "1 + 16 = " . add3(1, 16);//171 + 16 = 17
//先计算add3(1, 16),此处输出17,并返回17
//在连接"1 + 16 = "与add3函数的返回值17,结果输出:1 + 16 =17
//最后输出:171 + 16 =17
echo "1 + 16 = ", add3(1, 16);//1 + 16 = 1717
//先算echo "1 + 16 = "
//再算echo add3(1, 16),add3先输出17,再返回17,最后打印echo 17,结果为:1717
//最终显示1+16=1717


?>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值