Как определить переменные для полей без данных в них? - PullRequest
0 голосов
/ 14 марта 2019

Я получил несколько обращений к данным на сайте WordPress с использованием ряда настраиваемых полей.Поля не обязательны для заполнения в конце.Поэтому в моих шаблонах у меня есть такие вызовы:

<?php if( $additional_fields[ 'Time' ] ) { echo 'Duration: ' . $additional_fields[ 'Time' ] . '<br>'; } ?>

Теперь это работает.Что здорово.Но если я включаю WP Debug, и нет данных для этого поля, меня приветствует следующее:

Примечание: неопределенный индекс: Время в / home / hellod8 / public_html / wp-content /themes / my-theme / page-data.php в строке 63

Теперь, опять же, не критично для миссии.Если я выключу отладку, проблема исчезнет.Тем не менее, я все еще хотел бы решить это.

Я думал, что мог бы сделать это выше вызова функции:

<?php $additional_fields[ 'Time' ] = ''; ?>

Но все, что это делает, вообще ничего не отображает для этого поля.

Так чтобудет работать, чтобы устранить ошибку?

1 Ответ

2 голосов
/ 15 марта 2019

Вы используете isset(), чтобы определить, установлена ​​ли переменная.Пример:

if( isset($additional_fields['Time']) ){
    echo $additional_fields['Time'];
}

Если вы хотите увидеть, установлена ​​ли переменная, а не пустая, вы можете использовать empty().Пример:

if( !empty($additional_fields['Time']) ){
    echo $additional_fields['Time'];
}

empty() проверит множество таких вещей, как переменная isset или значение blank, zero, false или null.empty() немного медленнее, чем isset() (в основном из-за этих дополнительных проверок).

Пустой символ будет означать:

if( isset($additional_fields['Time']) && $additional_fields['Time'] ){
    echo $additional_fields['Time'];
}

isset() - http://php.net/manual/en/function.isset.php

empty() - http://php.net/manual/en/function.empty.php

...