PHP有像perl这样的默认赋值语法吗?

MJB*_*MJB 6 php

在Perl中,如果我想默认一个可能存在的值,例如作为传入的参数,我可以这样做:

  $var = parm->('variable') || 'default';
Run Code Online (Sandbox Code Playgroud)

在PHP中是否有类似的东西,或者我必须在分配后检查值,如果它仍为空,则为其分配默认值?

Pet*_*ley 10

不完全是.

PHP 5.3引入了他们所谓的"三元捷径".

// old way
$foo = $foo ? $foo : 'default';

// new way in 5.3
$foo = $foo ?: 'default';
Run Code Online (Sandbox Code Playgroud)

这甚至不是那么多的快捷方式,只能处理短路的值(如果此快捷方式0的有效值$foo将失败.)

否则你将不得不进行类型/存在检查旧的,硬的,手动的方式.

您还可以为签名中的参数指定默认值 - 不确定这是否与您所获得的完全相同,但这是在行动中

function foo( $bar = 'baz' )
{
  echo $bar;
}

foo(); // baz
Run Code Online (Sandbox Code Playgroud)