我想通過變量傳遞給新名稱(如果已設置),或者如果未設置第一個變量則獲取POST變量。PHP - 如果未設置變量,則獲取帖子變量
這是我的代碼,但它不工作:
if (isset($randombg)) {
$background = $randombg;
} else {
$background = $_POST['bg'])
};
什麼是錯的,或者我怎麼能解決這個問題?
我想通過變量傳遞給新名稱(如果已設置),或者如果未設置第一個變量則獲取POST變量。PHP - 如果未設置變量,則獲取帖子變量
這是我的代碼,但它不工作:
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;
}
''''''^ – sensorario
Mauybe $ randombg爲空或空(即不完全是指未設置)。
試試這個:
if ($randombg) {
$background = $randombg;
} else {
$background = $_POST['bg'];
}
或者一個縮短的語法:
$background = null == $randombg
? $_POST['bg']
: $randombg;
請不要做第二個。它只是一個巨大的來源,「爲什麼這個代碼不工作」 – Qrchack
爲什麼不是這個sytax?如果你把它寫在一行中,讀起來會更好,而且要短得多。 –
有時代碼不起作用,因爲開發人員不能讀取錯誤。 – sensorario
[專題] 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)
請,你能用真正發生的事情來代替「不工作」嗎?看到你的一些消息或錯別字? – sensorario
你檢查我的解決方案嗎? –