/ / Shorthand isset (), si no, devuelve el valor predeterminado - php, isset, shorthand

Shorthand isset (), si no es así, devuelve el valor predeterminado - php, isset, shorthand

Estoy buscando una versión abreviada de este código en PHP:

$address = isset($node->field_naam_adres["und"][0]["value"]) ? $node->field_naam_adres["und"][0]["value"] : "";

Básicamente, quiero verificar si la variable está configurada y, si no, devolver un valor predeterminado.

Respuestas

1 para la respuesta № 1

https://stackoverflow.com/a/18603279/165330 :

antes de php 7: no

$address = isset($node->field_naam_adres["und"][0]["value"]) ? $node->field_naam_adres["und"][0]["value"] : "";

de php 7: sí

$address = $node->field_naam_adres["und"][0]["value"] ?? "default";


0 para la respuesta № 2

Si puede salirse con la suya confiando en la verdad y la falsedad en lugar de la más directa isset, puede omitir la declaración intermedia en un ternario como este:

$address = $node->field_naam_adres["und"][0]["value"] ?: "";

Esto funciona de tal manera que si el valor de retorno de lala primera declaración se evalúa como verdadera, ese valor se devolverá, de lo contrario se utilizará el respaldo. Puede ver qué valores se evaluarán como booleanos aquí

Es importante tener en cuenta que si usa este patrón, no puede ajustar su declaración inicial en isset, empty, o cualquier función similar. Si lo hace, el valor de retorno de esa declaración simplemente se convierte en un valor booleano. Entonces, mientras que el código anterior devolverá el valor de $node->field_naam_adres["und"][0]["value"] o una cadena vacía, el siguiente código:

$address = isset($node->field_naam_adres["und"][0]["value"]) ?: "";

Volveremos tampoco TRUE o una cadena vacía.