php打印(或echo)命令如何解释数学符号?
我正在学习php,而代码完全是为了我的教育,所以我不想寻找“更好”的方法来实现这一点 当我复习这门语言的时候,我尝试了所有的东西,并且创建了一个关于我所尝试的东西的文档。我发现echo和print命令有一些奇怪的行为,我想知道:php打印(或echo)命令如何解释数学符号?,php,Php,我正在学习php,而代码完全是为了我的教育,所以我不想寻找“更好”的方法来实现这一点 当我复习这门语言的时候,我尝试了所有的东西,并且创建了一个关于我所尝试的东西的文档。我发现echo和print命令有一些奇怪的行为,我想知道: 1) 我真的需要3行打印“2+3=5”吗 2) 到底发生了什么?为什么我在示例2中得到6分 示例1-不起作用,无论我做什么,似乎都会进行评估。单引号、双引号甚至转义加号(“2/+3”)都不起作用 echo('2 + 3 = '.$var1 + $var2.'<br
1) 我真的需要3行打印“2+3=5”吗
2) 到底发生了什么?为什么我在示例2中得到6分 示例1-不起作用,无论我做什么,似乎都会进行评估。单引号、双引号甚至转义加号(“2/+3”)都不起作用
echo('2 + 3 = '.$var1 + $var2.'<br>');// 5
echo("2 + 3 = ".$var1 + $var2.'<br>');// 5
echo('2 /+ 3 /= '.$var1 + $var2.'<br>');// 5
echo('2+3='.$var1+var2'.
);//5.
回声(“2+3=”.$var1+$var2.
);//5.
echo('2/+3/='。$var1+$var2.
');//5.
例2-现在它变得很奇怪,因为我得到了6。如果我将3改为4,我得到7,因此它几乎像“3=“=1”和“4=“=2”,然后隐式地添加到以下内容中,但我对此表示怀疑
echo("2 + ");
echo(" 3 = ".$var1 + $var2.'<br>');// 2 + 6?
echo("2 + ");
echo(" 4 = ".$var1 + $var2.'<br>');// 2 + 7??
echo(“2+”);
回声(“3=”.$var1+$var2.
);//2 + 6?
回声(“2+”);
echo(“4=”.$var1+$var2.
);//2 + 7??
示例3-我真的需要3行代码来完成我的任务吗?这让我想起了Fortran
echo("2 + ");
echo(" 3 = ");
echo($var1 + $var2.'<br>');// 2 + 3 = 5
echo(“2+”);
回声(“3=”);
echo($var1+$var2.
);//2 + 3 = 5
帮助清理var1=2和var2=3。这些值是不相关的。我只是想把一个文本和一个经过计算的表达式括起来
我想让代码回显“2+3=”。$var1+$var2。“”,结果是“2+3=5”,但我得到的只是5或2+3=2+3 为什么这里只有一个5
echo('2 + 3 = '.$var1 + $var2.'<br>');// 5
echo('2+3='.$var1+var2'.
);//5.
为什么不是第二个表达式
echo('2 + 3 = '."$var1 + $var2".'<br>');// 2 + 3 = 2 + 3
echo('2+3='。“$var1+$var2”。”
);//2 + 3 = 2 + 3
首先让我们看看单引号和双引号。假设我们有以下变量:
$var1 = 1;
如果我们使用单引号或双引号回显此变量:
echo "$var1"; //result: 1
echo '$var1'; //result: $var1
因此,双引号将回显该值,而单引号将简单地回显文本变量名,就好像它只是一个字符串一样
现在让我们看一看示例1。在这种情况下,使用哪种类型的引号或转义符(反斜杠:\n而不是正斜杠:/)无关紧要,因为您没有回显引号内的变量:
echo "string" . $var1 + $var2 . "more strings";
如您所见,$var1
和$var2
不在引号内。它们只是通过点
字符添加到其中。因此,如果我们修改示例一,结果将不同:
echo '2 + 3 = $var1 + $var2<br>'; //result: 2 + 3 = $var1 + $var2
echo "2 + 3 = $var1 + $var2<br>";//result: 2 + 3 = 5
echo '2 /+ 3 /= $var1 + $var2<br>';//result: 2 /+ 3 /= $var1 + $var2
在第一种情况下,PHP注意到字符串中的第二个单引号。它假设字符串就在这里结束,而我们需要在字符串中加上一个文字引号。转义字符告诉PHP,我们希望在字符串中插入一个引号,而不是在这里结束
不幸的是,我无法帮助您处理示例2,因为如果没有$var1
和$var2
的值,就无法复制您的问题
回答例3中的问题:不,你没有。这也可以很好地工作:
echo "2 + 3 = " . $var1 + $var2 . "<br>";
echo“2+3=”$var1+$var2。“
”;
希望我已经把一些事情告诉你了。请记住,本网站更多的是针对具体问题,而不是对您的教育进行额外解释。如果你不明白什么,问问你的老师或者找一个更适合的论坛。如果你有什么特别的问题,我们会帮你的 正如安德烈指出的,这是因为操作顺序。我特别发现: 注意-点运算符与+和-,具有相同的优先级,这可能会产生意外的结果 例如:
上面将打印“3”而不是“结果:6”,因为首先创建字符串“Result3”,然后将其添加到3,生成3,非空非数字字符串转换为0
要打印“结果:6”,请使用副词更改优先级:
因此,我的解决方案是:
echo '2 + 3 = '.($var1 + $var2).'<br>'; //result: 2 + 3 = 5
echo“2+3=”。($var1+var2)。”
//结果:2+3=5
关键在于你如何回应它们。单引号将字符串作为文本,这意味着“2+3=5”将完全响应这一点。而双引号允许使用变量(和数学)。因此,“2+3=5”将导致“5=5”。您能否编辑您的问题,以便我们可以看到$var1
和$var2
的值?@Andrei,是的,您是正确的。当文字与表达式混合时,问题变得很明显。你没有提供这方面的例子。这是因为这在php中是不可能的吗?我的错误是因为我在一条线上做了太多?也许php没有我想象的那么有能力。谢谢你的回复,但是我没有得到你预测的结果。回声“2+3=$var1+var2”;返回2+3=2+3并回显“2+3=”$var1+$var2。“
”;返回5。@John Maher您想看到一些真正的混乱。尝试回显
回显“hello”。2 + 3 . “世界”代码>这将不是您所期望的。这就是为什么,这对PHP来说真的很烦人。串联比加法具有更高的优先级。是的…@Andrei谢谢!!你找到问题了!!根据你的评论,我找到了解决办法。没问题。很乐意帮忙。
<php
$var = 3;
echo "Result: " . $var + 3;
?>
<php
$var = 3;
echo "Result: " . ($var + 3);
?>
echo '2 + 3 = '.($var1 + $var2).'<br>'; //result: 2 + 3 = 5