PHP: 变量声明中的if语句

PHP: If statement in variable declaration

我知道在像 C# 这样的语言中,您可以使用类似 if 的语句(我知道它们有一个名称,但不记得它叫什么)有点像这样:

var variable = this ? true : false;

(我知道不对,但是好久没做了,有错请指正)。

我的问题是:你能在 PHP 中做同样的事情吗?如果可以,怎么做?

(该网站是用 WordPress 构建的,但这是一个关于 wp_* 功能的通用 PHP 变量赋值的问题)

我希望能够这样声明一个变量:

$current_user = if (is_user_logged_in()) {
    wp_get_current_user();
} else {
    null;
}

我想知道如何将它变成单行变量声明?

它叫做 Ternary operator,您可以用不同的方式使用它,其中一种方式如下:

 $cake = isset($lie) ? TRUE : FALSE;

isset(...) 可以用您想要的任何验证/检查操作来更改,TRUE : FALSE 可以用值/变量替换。

另一个例子:

$cake = ($pieces < 1) ? $cry : $eat;

当然,您也可以在 php 中这样做。试试这个 -

$current_user = (is_user_logged_in()) ? wp_get_current_user() : null;

这叫做三元运算符。 在 PHP 中,语法几乎相同:

$current_user = (is_user_logged_in() ? wp_get_current_user() : null);
$var = 4; // Initialize the variable
$var_is_greater_than_two = ($var > 2 ? true : false); // Returns true as 4 is greater than 2

这可能有帮助,它是一个三元运算符