Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-如果未设置变量,则获取post变量_Php_Variables_If Statement_Post_Isset - Fatal编程技术网

PHP-如果未设置变量,则获取post变量

PHP-如果未设置变量,则获取post变量,php,variables,if-statement,post,isset,Php,Variables,If Statement,Post,Isset,我试图将一个变量传递给一个新名称(如果已设置),或者在第一个变量未设置时获取一个POST变量 这是我的代码,但不起作用: if (isset($randombg)) { $background = $randombg; } else { $background = $_POST['bg']) }; 它有什么问题,或者我该如何修复它?您的代码中有拼写错误。在$background=$\u POST['bg'])中有一个) 和分号 你可以这样做: $defaultbg

我试图将一个变量传递给一个新名称(如果已设置),或者在第一个变量未设置时获取一个POST变量

这是我的代码,但不起作用:

if (isset($randombg)) {
    $background = $randombg;    
} else {  
   $background = $_POST['bg']) 
};

它有什么问题,或者我该如何修复它?

您的代码中有拼写错误。在
$background=$\u 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'
有关该功能的更多信息,您可以在和中阅读

关于您的代码

代码中有语法。详情如下:

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';

关于它的更多信息,您可以阅读

请,您可以用实际发生的情况替换
不起作用
?看到你的留言或打字错误了吗?你检查过我的解决方案了吗?请不要做第二个。这是一个巨大的“为什么这个代码不起作用”的来源,为什么这个sytax不起作用?如果你把它写在一行中,读起来会好得多,写起来会短得多。有时代码不起作用,因为开发人员看不到错误。很好,我不知道7.x的缩写。我试图避免使用
isset()