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

max*_*sme 5 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'];
Run Code Online (Sandbox Code Playgroud)

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

Meh*_*nya 8

PHP 7引入了The null coalescing operator(??),您可以像这样使用:

$result = $var ?? 'default';
Run Code Online (Sandbox Code Playgroud)

这将分配defaultresult,如果:

  • $var 未定义.
  • $varNULL

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

$result = $null_var ?? $undefined_var ?? 'hello' ?? 'world'; // Result: hello
Run Code Online (Sandbox Code Playgroud)

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

$credentials = $_GET['c'] ?? $_POST['c'] ?? $_POST['credentials'] ?? $_GET['credentials'];
Run Code Online (Sandbox Code Playgroud)

更多细节在这里这里