Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php打印(或echo)命令如何解释数学符号?_Php - Fatal编程技术网

php打印(或echo)命令如何解释数学符号?

php打印(或echo)命令如何解释数学符号?,php,Php,我正在学习php,而代码完全是为了我的教育,所以我不想寻找“更好”的方法来实现这一点 当我复习这门语言的时候,我尝试了所有的东西,并且创建了一个关于我所尝试的东西的文档。我发现echo和print命令有一些奇怪的行为,我想知道: 1) 我真的需要3行打印“2+3=5”吗 2) 到底发生了什么?为什么我在示例2中得到6分 示例1-不起作用,无论我做什么,似乎都会进行评估。单引号、双引号甚至转义加号(“2/+3”)都不起作用 echo('2 + 3 = '.$var1 + $var2.'<br

我正在学习php,而代码完全是为了我的教育,所以我不想寻找“更好”的方法来实现这一点

当我复习这门语言的时候,我尝试了所有的东西,并且创建了一个关于我所尝试的东西的文档。我发现echo和print命令有一些奇怪的行为,我想知道:
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