Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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”语句,因为“echo”语句不返回任何值?_Php_Echo_Return Value_Ternary Operator_Conditional Operator - Fatal编程技术网

Php “三元运算符”即“条件运算符”如何处理“echo”语句,因为“echo”语句不返回任何值?

Php “三元运算符”即“条件运算符”如何处理“echo”语句,因为“echo”语句不返回任何值?,php,echo,return-value,ternary-operator,conditional-operator,Php,Echo,Return Value,Ternary Operator,Conditional Operator,我在运行Windows10家用单语言64位操作系统的笔记本电脑上使用PHP7.3.6 我已经在我的笔记本电脑上安装了最新版本的XAMPP安装程序,它安装了Apache/2.4.39 Win64和PHP7.3.6 今天,我从中遇到了以下代码示例: 据我所知,根据以下文本: 表达式expr1?expr2:expr3在expr1时计算为expr2 计算结果为TRUE,如果expr1计算结果为FALSE,则为expr3 众所周知,PHP中的echo语句不返回任何值 所以,在上面提到的代码示例中,echo

我在运行Windows10家用单语言64位操作系统的笔记本电脑上使用PHP7.3.6

我已经在我的笔记本电脑上安装了最新版本的XAMPP安装程序,它安装了Apache/2.4.39 Win64和PHP7.3.6

今天,我从中遇到了以下代码示例:

据我所知,根据以下文本:

表达式expr1?expr2:expr3在expr1时计算为expr2 计算结果为TRUE,如果expr1计算结果为FALSE,则为expr3

众所周知,PHP中的echo语句不返回任何值

所以,在上面提到的代码示例中,echo语句也不能返回任何值


所以,我的问题是,由于echo语句从不返回任何值,三元运算符如何知道expr1i.e。语句echo$some_var的计算结果为true或false,并相应地将输出打印为true或false

您对逻辑的理解不正确。这就是为什么我喜欢三元语句的括号。您的三元值与以下内容相同:

if ($some_var) {
    echo 'true';
} else {
    echo 'false';
}
回音未在条件中使用。如果我们把三元数改成这样,事情就更清楚了:

echo ($some_var ? 'true' : 'false');
至少从逻辑的角度来看,如果$some_var{true}else{false},这可以看作是回声


所以测试的不是回声,而是之前的一点这是if语句,而不是echo,echo在PHP游戏中是一个奇怪的玩家。当它被执行时,它实际上是将语句包装在括号中,使其更像一个函数

所以


@treyBake:我知道echo不是PHP中的内置函数,它是一种语言构造。我怀疑三元运算符的功能完全取决于expr1的值。然后,如何使用echo语句确定expr1的计算结果是true还是false,因为echo从不返回任何值?这不是由三元表达式计算的echo。这是$some_var。它正在测试这是真是假,并返回字符串'true'或字符串'false',然后由echo进行回显。您不是使用echo返回值,而是将echo与三元语句结合使用,以最小化行数。回音是不相关的,它可能是一个包含,一个变量转储,一个打印-这是三元组中相关的内容
echo ($some_var ? 'true' : 'false');