2011-01-28 16 views

Respuesta

22

En PHP 5.3, también se puede hacer:

$a = f() ?: 'default'; 

Ver the manual on ?: operator.

+3

+1 porque yo no había visto eso antes. ordenado. –

+1

+1 ya que no he visto eso usado en ninguno de mis libros que cubren PHP 5.3. Muy bueno saber – Andrew

6

Esto parece funcionar bien:

$x = f() or $x = 'default'; 
1
function f() 
{ 
    // conditions 
    return $if_something ? $if_something : 'default'; 
} 

$x = f(); 
+0

Ah, buena respuesta. Quise que f() fuera algo sobre lo que no tuviéramos control y, de hecho, la forma en que esto surgió para mí no era una función en absoluto, sino '$ _REQUEST ['foo']', por lo que no era una problema de eficiencia tanto como un problema de tipeo. – dreeves

0

Puede guardarlo en una variable. Caso_prueba:

function test() { 
     echo 'here'; 
     return 1; 
} 

$t = test(); 
$x = $t ? $t : 0; 
echo $x; 
1
$x = ($result = foo()) ? $result : 'default'; 

test

+0

Esto funciona, pero parece que se puede hacer más limpiamente, sin una variable de temperatura. – dreeves

Cuestiones relacionadas