以下有两个问题!

以下有两个问题!

第一个问题:$i=3;
                     $j=8;

                     echo "{$i}+{$j}=".($i+$j);运算后答案为什么是11?

第二个问题:echo true?true:false;
echo 1?true:false;
var_dump(false?0:1);这三个运算后答案是1?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
guly 2019-11-28 17:49:01

你好,

<?php
$i=3;
$j=8;
//此处表示"{$i}+{$j}=".$i一段字符串+8,然后取字符串合法部分
echo "4{$i}+{$j}=".$i+$j;//相当于43+8=51
echo "4eedd{$i}+{$j}=".$i+$j; //相当于4+8=12
echo "{$i}+{$j}=".$i+$j; //相当于 3+8=11

如果解决您的问题请采纳,祝学习愉快!

guly 2019-11-28 14:42:55

你好,1、当  "{$i}+{$j}=".($i+$j); =和.的优先级是同级的,表达式中加上()时优先级最高先执行3+8=11,而"{$i}+{$j}="相当于一个字符串 3+8= 然后与11通过连接符.连接,

2、此处主要是考察三元运算符相当于如下:

if(true){
    echo true;
}else{
    echo false;
}
echo  "</br>";
//echo 1?true:false;
if(1) {
    echo true;
}else{
    echo false;
}
echo  "</br>";
//var_dump(false?0:1);

if(false){ 
    echo 0;
}else{
    echo 1;
}

如果解决您的问题请采纳,祝学习愉快!

  • 提问者 慕婉清2128704 #1
    "{$i}+{$j}=".$i+$j;那这个也是11请问怎么理解?
    2019-11-28 15:20:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师