Como algunas personas saben, C# tiene un operador ??
muy útil que evalúa y devuelve expresión a la derecha si la expresión de la izquierda es nula. Es muy útil para proporcionar valores por defecto, por ejemplo:PHP y ?? operador
int spaces = readSetting("spaces") ?? 5;
Si readSetting
no pudo encontrar "spaces"
y devuelve un valor nulo, variables spaces
sostendría valor predeterminado de 5
.
Se podría hacer casi lo mismo en JavaScript y Ruby con ||
operador, como en
var spaces = readSetting("spaces") || 5;
aunque no se podía tener 0
como valor de spaces
en JavaScript en este caso y false
tanto en Ruby y JavaScript .
PHP tiene or
operador y aunque no funciona como ||
en un sentido que no devuelve la expresión de la derecha, aún podría ser útil aquí:
$spaces = readSetting('spaces') or $spaces = 5;
con la nota que ""
y "0"
también se tratan como false
en PHP además de false, 0
y null
en la mayoría de los idiomas.
La pregunta es, ¿debería usar la construcción de arriba? ¿Tiene efectos secundarios además de tratar a la clase grande de caracteres como falsa? ¿Y hay una mejor construcción que esta comunidad usualmente usa y recomienda la comunidad PHP?
no puedo ver ninguna referencia a:? En el artículo enlazado. –