问号

php
2022-08-30 19:32:57
$hideCode = $likesObj->isAlreadyLikedByUser(facebookUID()) ? 'style="display:none;"' : '';

任何人都可以向我解释这个问号在这行代码中的作用吗?多谢!


答案 1

这被称为三元运算符,它适用于多种语言,包括PHP,Javascript,Python,Ruby...

$x = $condition ? $trueVal : $falseVal;

// same as:

if ($condition) {
    $x = $trueVal;
} else {
    $x = $falseVal;
}

在 PHP 中使用三元组时,需要注意的一点非常重要的一点是:

注意:请注意,三元运算符是一个语句,它的计算结果不是变量,而是语句的结果。了解是否要通过引用返回变量非常重要。语句返回 $var == 42 ?$a : $b;因此,按引用返回函数将不起作用,并且在以后的 PHP 版本中会发出警告。


答案 2

实际上,此语句表示三元运算,即条件表达式:

// works like:    (condition) ? if-true : if-false;

$hideCode = $likesObj->isAlreadyLikedByUser(facebookUID()) ?  'style="display:none;"':'';

在你的情况下将有价值,如果$hideCodestyle="display:none;"

$likesObj->isAlreadyLikedByUser(facebookUID())

将返回 true,否则它将为 null 或空。


推荐