Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does PHP have a default assignment idiom like perl?

Tags:

php

In Perl, if I want to default a value that might exist, for example as a passed in parameter, I can do this:

  $var = parm->('variable') || 'default';

Is there something analogous in PHP or do I have to check the value after assigning, and if it is still null assign it the default value?

like image 775
MJB Avatar asked Jun 02 '10 14:06

MJB


1 Answers

Not exactly.

PHP 5.3 introduced what they call "the ternary shortcut".

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

// new way in 5.3
$foo = $foo ?: 'default';

Which isn't even that much of a shortcut and only works short-circuit-able values (if 0 is a valid value for $foo this shortcut will fail.)

Otherwise you'll have to do the type/existence checking the old, hard, manual way.

You can also specify default values for parameters in the signature - not sure if that's exactly what you're getting at but here's that in action

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

foo(); // baz
like image 66
Peter Bailey Avatar answered Oct 22 '22 18:10

Peter Bailey