我需要编辑一个函数,但我无法弄清楚是什么?和返回声明中的:false mean。我认为:是OR还是?我不知道。
public function hasPermission($name)
{
return $this->getVjGuardADUser() ? $this->getVjGuardADUser()->hasPermission($name) : false;
}
任何可以为我解决此问题的人?
答案 0 :(得分:8)
这是PHP的Ternary Operator。这就像是if / else表达式的简写。
您的扩展代码可能如此:
public function hasPermission($name)
{
if ($this->getVjGuardADUser()) {
return $this->getVjGuardADUser()->hasPermission($name)
} else {
return false;
}
}
来自php.net的一些示例代码:
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
答案 1 :(得分:5)
这是ternary operator,如果构造的话就是一个简单的oneliner。
答案 2 :(得分:2)
这是三元运营商。它记录在案here。
这是一个简短形式:
public function hasPermission($name) {
if ($this->getVjGuardADUser()) {
return $this->getVjGuardADUser()->hasPermission($name)
} else {}
return false;
}
}
我建议使用更详细的条件语句样式以提高可读性。
答案 3 :(得分:1)
它被称为ternary operator。
variable = predicate ? /* predicate is true */ : /* predicate is false */;
在您的代码中,它是以下内容的简写形式:
if($this->getVjGuardADUser())
return $this->getVjGuardADUser()->hasPermission($name);
else
return false;
答案 4 :(得分:0)
这是一个ternaire表达。
您可以将其替换为:
if ($this->getVjGuardADUser())
return $this->getVjGuardADUser()->hasPermission($name);
return false;
答案 5 :(得分:0)