php一个很简单的问题……
<?php$a=10;$b=3;echo$a."+".$b."=".$a+$b;?>怎么就单单输出显示13呢?...
<?php
$a=10;
$b=3;
echo $a."+".$b."=".$a+$b;
?>
怎么就单单输出显示13呢? 展开
$a=10;
$b=3;
echo $a."+".$b."=".$a+$b;
?>
怎么就单单输出显示13呢? 展开
4个回答
展开全部
其实你是想输出的是字符串,也就是“10+3=13” ; 但你的输出是个整型;其实你下面的这段代码写的有点问题 ;
echo $a."+".$b."=".$a+$b;
其实它是两段,就是因为中间出现了个加号(不是前面的加号,前面的加号用引号引起来的是字符串,而后面的才是用于加法的加号);才将它做了个加法运算了;
解析:$a."+".$b."=".$a+$b
这其实是两段,$a."+".$b."=".$a 和 $b ,前者是字符串,而后者是整型;最后其实就是字符串和整型相加,即“10+3=10”和3相加,程序会先将字符串转换成整型后相加;但“10+3=10”转换成整型是10;所以也就出现了10加3等于13,即就出现“12”;(至于“10+3=10”转换成整型等于10的原因我也不懂,不过你可以用intval()这个函数测试下,即可以用echo intval($a."+".$b."=".$a),看它是不是显示的是10;);
解决办法:
既然输出的是字符串,那我们可以先运算,再输出字符串;即可以将等号(=)后面的先相加,那就用到小括号,即:echo $a."+".$b."=".($a+$b);这样就可以了。
echo $a."+".$b."=".$a+$b;
其实它是两段,就是因为中间出现了个加号(不是前面的加号,前面的加号用引号引起来的是字符串,而后面的才是用于加法的加号);才将它做了个加法运算了;
解析:$a."+".$b."=".$a+$b
这其实是两段,$a."+".$b."=".$a 和 $b ,前者是字符串,而后者是整型;最后其实就是字符串和整型相加,即“10+3=10”和3相加,程序会先将字符串转换成整型后相加;但“10+3=10”转换成整型是10;所以也就出现了10加3等于13,即就出现“12”;(至于“10+3=10”转换成整型等于10的原因我也不懂,不过你可以用intval()这个函数测试下,即可以用echo intval($a."+".$b."=".$a),看它是不是显示的是10;);
解决办法:
既然输出的是字符串,那我们可以先运算,再输出字符串;即可以将等号(=)后面的先相加,那就用到小括号,即:echo $a."+".$b."=".($a+$b);这样就可以了。
展开全部
这是字符串操作
追问
啥?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的语句写错了
改成 :echo $a."+".$b."=".($a+$b);
改成 :echo $a."+".$b."=".($a+$b);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?php
$a=10;
$b=3;
echo $a."+". $b ."=" . ($a+$b);
?>
以上的写法才能得到程序本意想得到的效果。
至于你贴上来的代码,是使用方法上有错误,结果是不可控的,因为“+”、“-”运算符与.号是同级优先级,以下是我以前研究时做的一些小测试,在这里就贴出来吧:<br/>
<?php
$a=2;
$b=5;
$d=0;
echo '$a是' . $a . "<br/>";
echo '$b是' . $b . "<br/>";
echo '$d是' . $d . "<br/><br/>";
echo '-' . $a+$a ." 这是-a+a<br/>";//这里的减号 相当于负号
echo '-' . $a-$a ." 这是-a-a<br/>";//同上
echo '=' . $a+$a ." 这是=a+a<br/>";
echo '=' . $a-$a ." 这是=a-a<br/>";//莫名其妙
echo "=" . $a+$b . " 这是=a+b 输出5<br/>";//看来第一个变量没起作用!
echo "=" . $b+$a . " 这是=b+a 输出2<br/>";//同上;
echo "=" . $a-$b . " 这是=a-b 输出-5<br/>";//同上;
echo "=" . $b-$a . " 这是=b-a 输出-2<br/>";//同上;
echo "=" . $b*$a . " 这是=b*a<br/>";//这个就好用了,那是为什么呢,因为*号的优先级很高
echo $a."+".$b."=".$a+$b ." 输出7<br/>";//
echo $a."+".$d."=".$d+$b ." 输出7<br/>";//根据这里来看,中间的两个变量根本没起作
echo $a."+".$b."=".$d+$b ." 输出7<br/>";//那么再测试一下!
echo $a."+".$b."=".$b+$b ." 输出7<br/>";//那么再测试一下!
echo $a."+".$a."=".$b+$b ." 输出7<br/>";//那么再测试一下!
echo $a."+".$a."=".$a+$b ." 输出7<br/>";//那么再测试一下!
echo $d . "=" . $a+$b ." 赋下值看看<br/>";
echo $d." 最终验证下想法的正确性!<br/>";//输出下看看怎么回事儿!~!
?>
$a=10;
$b=3;
echo $a."+". $b ."=" . ($a+$b);
?>
以上的写法才能得到程序本意想得到的效果。
至于你贴上来的代码,是使用方法上有错误,结果是不可控的,因为“+”、“-”运算符与.号是同级优先级,以下是我以前研究时做的一些小测试,在这里就贴出来吧:<br/>
<?php
$a=2;
$b=5;
$d=0;
echo '$a是' . $a . "<br/>";
echo '$b是' . $b . "<br/>";
echo '$d是' . $d . "<br/><br/>";
echo '-' . $a+$a ." 这是-a+a<br/>";//这里的减号 相当于负号
echo '-' . $a-$a ." 这是-a-a<br/>";//同上
echo '=' . $a+$a ." 这是=a+a<br/>";
echo '=' . $a-$a ." 这是=a-a<br/>";//莫名其妙
echo "=" . $a+$b . " 这是=a+b 输出5<br/>";//看来第一个变量没起作用!
echo "=" . $b+$a . " 这是=b+a 输出2<br/>";//同上;
echo "=" . $a-$b . " 这是=a-b 输出-5<br/>";//同上;
echo "=" . $b-$a . " 这是=b-a 输出-2<br/>";//同上;
echo "=" . $b*$a . " 这是=b*a<br/>";//这个就好用了,那是为什么呢,因为*号的优先级很高
echo $a."+".$b."=".$a+$b ." 输出7<br/>";//
echo $a."+".$d."=".$d+$b ." 输出7<br/>";//根据这里来看,中间的两个变量根本没起作
echo $a."+".$b."=".$d+$b ." 输出7<br/>";//那么再测试一下!
echo $a."+".$b."=".$b+$b ." 输出7<br/>";//那么再测试一下!
echo $a."+".$a."=".$b+$b ." 输出7<br/>";//那么再测试一下!
echo $a."+".$a."=".$a+$b ." 输出7<br/>";//那么再测试一下!
echo $d . "=" . $a+$b ." 赋下值看看<br/>";
echo $d." 最终验证下想法的正确性!<br/>";//输出下看看怎么回事儿!~!
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询