php - 问号冒号运算符的含义

2022-08-30 19:14:03

这句话是什么意思??:

$_COOKIE['user'] ?: getusername($_COOKIE['user']);

谢谢。


答案 1

它是语句的简写。if

$username = $_COOKIE['user'] ?: getusername($_COOKIE['user']);

与 相同

if( $_COOKIE['user'] ) 
{
    $username = $_COOKIE['user'];
} 
else
{
    $username = getusername($_COOKIE['user']); 
}

在此处查看测试套件:https://3v4l.org/6XMc4

但在此示例中,函数“getusername”可能无法正常工作,因为它在 is 时命中的唯一值。因此,里面的参数也是空的。else$_COOKIE['user']emptygetusername()


答案 2

它是简写的php,例如:

(true == true ? echo "this is true" : "this is false")

写出来的意思是:

if (true == true) {
    echo "This is true";
}
else {
    echo "This is false";
}

在您的示例中,只有一个 else 语句。


推荐