prdslf001001 2017-11-09 03:33 采纳率: 25%
浏览 1059

php中关于echo输出,逗号和点的区别的问题,请分析一下每局执行结果的原因;

<?php

$a= 1;
$b= 2;
$c= 3;

echo "$a+$b","$a+$c"; //1+21+3;

echo "$a+$b"."$a+$c"; // 1+21+3;

echo $a+$b,$a+$c; // 34;

echo $a+$b.$a+$c; // 34;

function tect(){

echo '2222';

}

echo '111',tect().'3333'; //11122223333;

echo '111'.tect().'3333';// 22221113333;

?>

  • 写回答

2条回答 默认 最新

  • 暮之雪 博客专家认证 2017-11-09 04:03
    关注

    首先第一个和第二个echo,php里.表示连接字符串。echo "$a+$b","$a+$c";表示输出了两个字串,等于echo "$a+$b";echo "$a+$c"; 也就是你输出了1+2和1+3,但是在浏览器上看,这两个输出是挨在一起的,所以成1+21+3。而.表示你点号把 "$a+$b"和"$a+$c"两个字串相拼接,所以结果是1+21+3.
    然后第三个和第四个echo,“”里面$a+$b是一个字符串,是1+2.而不加“”,是两个int数字相加,而且$a+$b=3,$a+$c=4.同理,你输出了两次结果是34.而.号将3和4转换成了string相拼接,所以也是34.

    第五个和第六个echo。tect()里echo出2222,但是没有return,所以tect()的值是空‘’。所以echo '111',tect().'3333';其实是echo '111';
    echo ‘2222’,echo ‘'.'3333',所以是11122223333。最后一个,因为tect()里的echo先执行,所以等于echo ‘2222';echo '111'.''.'3333';
    所以结果是22221113333

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题