Intereting Posts
Как преобразовать пустой массив и пустой объект в пустую строку или null php Замена нескольких пространств одним пространством Возможные ошибки при использовании команд exec в PHP Странная ошибка с использованием PHP Simple HTML DOM parser regex: удалить весь текст внутри «двойных кавычек» (включая многострочные) В чем смысл значений, возвращаемых функцией trader_bbands ()? Синтаксис обновления MySQL с помощью скобок Есть ли способ уловить ошибки MySQL и базы данных в PHP? Утечка памяти при запуске Drupal на linux apache, но одно и то же приложение не будет протекать на сервере windows Регулярное выражение для выборочной зачистки HTML Код проверки номера VIN VIN Создайте выпадающий список в Zend Framework 2 Как использовать запрос базы данных с JOIN в режиме обработки на стороне сервера Как указать упорядоченные переменные в файлах gettext .po? Как получить числовой ключ нового толкаемого элемента в PHP?

Проверьте, нет ли переменной пустой

У меня есть некоторые пользовательские переменные, которые я хочу отобразить в другой части моего сайта, например:

<div class="pre_box">Term: </div> <div class="entry"><?php $key='term'; echo get_post_meta($post->ID, $key, true); ?></div> 

Иногда эти переменные могут быть пустыми, и в этом случае я не хочу отображать метку пустой переменной. В приведенном выше примере я хотел бы скрыть часть <div class="pre_box">Term: </div> . Есть ли простой способ проверить, является ли переменная php, подобная приведенной выше, пустой и предотвращает отображение метки?

Обновите, вот код, используя! Empty

 <?php $key='term' ?> <?php if( !empty( $key ) ): ?> <div class="pre_box">Term: </div> <div class="entry"> <?php echo get_post_meta($post->ID, $key, true); ?> </div> <?php endif; ?> 

Однако это все равно отображает содержимое независимо от того, что. Я думаю, проблема может быть в том, как я определяю переменную $ key. Я пытаюсь вытащить данные из настраиваемого поля, установленного в сообщении WordPress, – вот что такое бизнес $ post-> ID.

 <?php $post_meta = get_post_meta($post->ID, 'term', true); if (!empty($post_meta)) { ?> <div class="pre_box">Term: </div> <div class="entry"><?php echo $post_meta; ?></div> <?php } ?> 
 <?php if( isset( $var ) ): ?><p><?php echo $var ?></p><?php endif; ?> 

Если $ var установлен, он отобразит абзац с $ var, иначе ничего не будет отображаться

Если isset() не работает, попробуйте empty() вместо:

 <?php if( !empty( $key ) ): ?> <div class="pre_box">Term: </div> <div class="entry"> <?php echo get_post_meta($post->ID, $key, true); ?> </div> <?php endif; ?> 

isset() будет передавать TRUE если значение установлено и имеет значение, отличное от NULL .

empty() вместо этого отправит TRUE (следовательно !empty() приведет к FALSE ) для:

  • "" (пустая строка)
  • 0 (0 как целое число)
  • "0" (0 в виде строки)
  • NULL
  • FALSE
  • array() (пустой массив)
  • var $var; (объявленная переменная, но без значения в классе)

Я предполагаю, что ваш $key установлен, но с пустой строкой. Таким образом, empty() – это путь сюда.

Ну, как ваш код выше, ключ $ никогда не будет пустым, поэтому всегда будет отображаться pre_box. Вы устанавливаете $key = 'term' , который дает ему значение so !empty($key) или isset($key) всегда будет true.

Решение Кейси должно дать вам результат, за который вы собираетесь.