Php 使用比较或| |运算符输出字符串不是布尔值

Php 使用比较或| |运算符输出字符串不是布尔值,php,Php,在JavaScript中,我使用比较“或”运算符来检查结果是否存在。如果没有,请打印其他内容,例如: console.log(“”| |“Yes”);//是您可以使用(即使这使它不再是三元运算符:) 如果条件为truthy,它将计算到它的第一个操作数,如果条件不是truthy,它将返回到正确的操作数: echo '' ?: 'Yes'; // Yes 演示(带有几个示例): 请参阅手册中的详细信息,了解哪些值被认为是虚假的(因此其他值都是真实的)。echo'|“是”@AbraCadaver

在JavaScript中,我使用比较“或”运算符来检查结果是否存在。如果没有,请打印其他内容,例如:

console.log(“”| |“Yes”);//是
您可以使用(即使这使它不再是三元运算符:)

如果条件为truthy,它将计算到它的第一个操作数,如果条件不是truthy,它将返回到正确的操作数:

echo '' ?: 'Yes';  // Yes
演示(带有几个示例):


请参阅手册中的详细信息,了解哪些值被认为是虚假的(因此其他值都是真实的)。

echo'|“是”@AbraCadaver-虽然这适用于特定示例,但在以下情况下不适用:如果&、|和^运算符的两个操作数都是字符串,则该操作将对构成字符串的字符的ASCII值执行,结果将是字符串。在所有其他情况下,两个操作数都将转换为整数,结果将是整数。”@GTSJoe你的意思是用
替换
|
不够好,但是用
|
替换
|
很好?…真的吗?:)@Jeto-我会把
作为一个答案,听起来完全正确:“从PHP5.3开始,可以省略三元运算符的中间部分。表达式expr1?:如果expr1的计算结果为真,则expr3返回expr1,否则返回expr3。" . 这正是
|
在JavaScript中所做的。GTS乔-例如:
echo'?:“是”@T.J.Crowder当然,我会继续做这件事。我猜GTSJoe没有注意到我在上面的评论中使用了速记版本。我只是嘲笑人们称之为三元运算符的速记版本(PHP的文档称长版本为“三元运算符”),因为当然,上面不是三元运算符,而是二元运算符(一个接受两个操作数的运算符)三值运算符的变体(一个接受三个操作数的运算符)。:-)(是的,我妻子在圣诞节给我买了一个“学究”别针,你的意思是什么?)顺便说一句,我后来学会了这种技术被称为“短路求值”,它用在各种不同的语言中。