PHP - 如果未设置变量,则获取 post 变量
PHP - If variable is not set, get post variable
我正在尝试将一个变量传递给一个新名称(如果已设置),或者如果第一个变量未设置则获取一个 POST 变量。
这是我的代码,但它不起作用:
if (isset($randombg)) {
$background = $randombg;
} else {
$background = $_POST['bg'])
};
它有什么问题,或者我该如何解决?
您的代码中有拼写错误。 $background = $_POST['bg'])
中有一个)
和一个分号
你这应该行得通:
$defaultbg = '#FFFFFF';
if (isset($randombg)) {
$background = $randombg;
} elseif( isset( $_POST['bg'] ) ) {
$background = $_POST['bg'];
}else{
$background = $defaultbg;
}
Mauybe $randombg 为 null 或空(这并不完全意味着未设置)。
试试这个:
if ($randombg) {
$background = $randombg;
} else {
$background = $_POST['bg'];
}
或缩短语法:
$background = null == $randombg
? $_POST['bg']
: $randombg;
[特征] PHP 7.0.x +
如果您使用的是PHP 7.0.x+,您可以使用以下语法:
$background = $randombg ?? $_POST['bg'];
在这种情况下,$background
将从第一个已设置且不为空的变量中获取值。
你甚至可以这样做:
$background = $randombg ?? $_POST['bg'] ?? 'No background given';
// if $randombg and $_POST['bg'] will be not set or null $background will become 'No background given'
您可以在 PHP RFC: Null Coalesce Operator and PHP: New Features
中阅读有关该功能的更多信息
关于您的代码
你的代码中有语法。更多信息如下:
if (isset($randombg)) {
$background = $randombg;
} else {
$background = $_POST['bg']) // you have syntax here, delete )
}
您也可以使用短语法:
$background = (isset($randombg)) ? $randombg : $_POST['bg'];
它的工作原理如下:
$background = (condition) ? 'when true' : 'when false';
更多信息你可以阅读here (Shorthand if/else)
我正在尝试将一个变量传递给一个新名称(如果已设置),或者如果第一个变量未设置则获取一个 POST 变量。
这是我的代码,但它不起作用:
if (isset($randombg)) {
$background = $randombg;
} else {
$background = $_POST['bg'])
};
它有什么问题,或者我该如何解决?
您的代码中有拼写错误。 $background = $_POST['bg'])
中有一个)
和一个分号
你这应该行得通:
$defaultbg = '#FFFFFF';
if (isset($randombg)) {
$background = $randombg;
} elseif( isset( $_POST['bg'] ) ) {
$background = $_POST['bg'];
}else{
$background = $defaultbg;
}
Mauybe $randombg 为 null 或空(这并不完全意味着未设置)。
试试这个:
if ($randombg) {
$background = $randombg;
} else {
$background = $_POST['bg'];
}
或缩短语法:
$background = null == $randombg
? $_POST['bg']
: $randombg;
[特征] PHP 7.0.x +
如果您使用的是PHP 7.0.x+,您可以使用以下语法:
$background = $randombg ?? $_POST['bg'];
在这种情况下,$background
将从第一个已设置且不为空的变量中获取值。
你甚至可以这样做:
$background = $randombg ?? $_POST['bg'] ?? 'No background given';
// if $randombg and $_POST['bg'] will be not set or null $background will become 'No background given'
您可以在 PHP RFC: Null Coalesce Operator and PHP: New Features
中阅读有关该功能的更多信息关于您的代码
你的代码中有语法。更多信息如下:
if (isset($randombg)) {
$background = $randombg;
} else {
$background = $_POST['bg']) // you have syntax here, delete )
}
您也可以使用短语法:
$background = (isset($randombg)) ? $randombg : $_POST['bg'];
它的工作原理如下:
$background = (condition) ? 'when true' : 'when false';
更多信息你可以阅读here (Shorthand if/else)