尽管最初的答案是正确的,但我有一个较晚的答案并提供了更多解释。
关于三元运算符
$expression ? $value1 : $value2
三元运算符像函数一样工作,例如它返回一个值。
哪个值?这就是第一个参数发挥作用的地方。它是一个被评估为true
或的表达式false
。
如果为真,则将第二个参数作为值返回。如果为假,则返回第三个参数。
由于您在外部处理字符串,因此返回的值将用作字符串。然后只返回字符串值并且不要将代码的读者与返回 NULL 混淆是一个非常好的主意。尽管如此,它将被转换为空字符串。
快捷方式三元运算符
$expression ?: $value
这个省略了第二个值为 true 的值,如果结果为 true,则返回 $expression,否则返回 $value。这对于检查变量是否已定义并设置为一个值(除了那些评估为假的变量)非常有用,否则使用默认值。
通过反转表达式可以省略参数,但在您的情况下不可能返回空字符串或其他内容。
$avatar_size <= 50 ?: ' style="overflow:hidden"'
这不起作用,因为如果头像大小低于 50,将返回“true”并在字符串中使用 - 转换为"1"
.