Я ищу сокращенную версию этого кода на PHP:
$address = isset($node->field_naam_adres['und'][0]['value']) ? $node->field_naam_adres['und'][0]['value'] : '';
В основном, я хочу проверить, установлена ли переменная, и если нет, то вернуть значение по умолчанию.
https://stackoverflow.com/a/18603279/165330 :
до php 7: нет
$address = isset($node->field_naam_adres['und'][0]['value']) ? $node->field_naam_adres['und'][0]['value'] : '';
с php 7: да
$address = $node->field_naam_adres['und'][0]['value'] ?? 'default';
Если вы можете сойти с рук, полагаясь на правду и ложь, а не на прямую isset
, вы можете опустить среднее утверждение в троичной форме, например так:
$address = $node->field_naam_adres['und'][0]['value'] ?: '';
Это работает так, что если возвращаемое значение первого оператора оценивается как истинное, это значение будет возвращено, в противном случае будет использован запасной вариант. Вы можете видеть, что различные значения будут оцениваться как логические Вот
Важно отметить, что если вы используете этот шаблон, вы не сможете заключить свой начальный оператор в isset
, empty
или любой подобной функции. Если вы это сделаете, возвращаемое значение из этого оператора просто становится логическим значением. Таким образом, в то время как приведенный выше код вернет либо значение $node->field_naam_adres['und'][0]['value']
или пустая строка, следующий код:
$address = isset($node->field_naam_adres['und'][0]['value']) ?: '';
Вернется либо TRUE
или пустая строка.