最佳分层php语法,用于将变量分配给值(如果已设置)

时间:2018-02-22 20:36:25

标签: php variables

我想为5组参数执行此操作这是最好的方法吗?还是有一些更简单的语法?

if(isset($_GET['credentials'])) $credentials = $_GET['credentials'];
if(isset($_POST['credentials'])) $credentials = $_POST['credentials'];
if(isset($_POST['c'])) $credentials = $_POST['c'];
if(isset($_GET['c'])) $credentials = $_GET['c'];

同样具有相同的层次结构。

1 个答案:

答案 0 :(得分:8)

PHP 7引入了空合并运算符(??),您可以这样使用:

$result = $var ?? 'default';

如果符合以下条件,我们会将default分配给result

  • $var未定义。
  • $varNULL

您还可以使用多个??运算符:

$result = $null_var ?? $undefined_var ?? 'hello' ?? 'world'; // Result: hello

要回答你的问题,你应该做的事情如下:

$credentials = $_GET['c'] ?? $_POST['c'] ?? $_POST['credentials'] ?? $_GET['credentials'];

更多详情herehere