我正在尝试将变量传递给新名称(如果已设置),或者如果未设置第一个变量则获取POST变量。
这是我的代码,但它不起作用:
if (isset($randombg)) {
$background = $randombg;
} else {
$background = $_POST['bg'])
};
它有什么问题,或者我该如何解决这个问题?
答案 0 :(得分:1)
您的代码中存在拼写错误。 )
中有一个$background = $_POST['bg'])
和分号
你应该这样做:
$defaultbg = '#FFFFFF';
if (isset($randombg)) {
$background = $randombg;
} elseif( isset( $_POST['bg'] ) ) {
$background = $_POST['bg'];
}else{
$background = $defaultbg;
}
答案 1 :(得分:1)
[功能] 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和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)
答案 2 :(得分:0)
Mauybe $ randombg为null或为空(这并不意味着没有设置)。
试试这个:
if ($randombg) {
$background = $randombg;
} else {
$background = $_POST['bg'];
}
或缩短语法:
$background = null == $randombg
? $_POST['bg']
: $randombg;