Подтвердить что ты не робот

PHP - Если переменная не пуста, echo html-код

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

Я пробовал этот код, но не работал:

<?php 
    $web = the_field('website');
    if (isset($web)) {
?>
       <span class="field-label">Website: </span><a href="#" onclick="location.href='http://<?php the_field('website'); ?>'; return false;" target="_blank"><?php the_field('website'); ?></a> 
<?php
    } else { 
        echo "Niente";
    }
?>
4b9b3361

Ответ 1

if (!empty($web)) {
?>
    <span class="field-label">Website:  </span><a href="http://<?php the_field('website'); ?>" target="_blank"><?php the_field('website'); ?></a> 
<?php
} else { echo "Niente";}

http://us.php.net/manual/en/function.empty.php

Ответ 2

isset вернет true, даже если переменная равна "". isset возвращает false, только если переменная null. Что вы должны делать:

if (!empty($web)) {
    // foo
}

Это проверит, что переменная не пуста.

Надеюсь, что это поможет

Ответ 3

Просто используйте if ($web). Это true, если переменная имеет какое-либо правное значение.

Вам не нужно isset или empty, поскольку вы знаете, что переменная существует, поскольку вы только что установили ее в предыдущей строке.

Ответ 4

Я не понимаю, как if(!empty($var)) может создать путаницу, но я согласен, что if ($var) проще. - Ваннето 8 марта '12 в 13:33

Потому что empty имеет особую цель подавления ошибок для несуществующих переменных. Вы не хотите подавлять ошибки, если вам не нужно. Полное руководство по PHP isset And empty подробно объясняет проблему. - deceze ♦ 9 марта '12 в 1:24

Фокусируясь на части подавления ошибок, если переменная является массивом, в котором доступ к ключу может быть или не быть определен:

  1. if($web['status']) выдаст:

    Примечание: неопределенный индекс: статус

  2. Чтобы получить доступ к этому ключу без ошибок:
    1. if(isset($web['status']) && $web['status']) (2-е условие не проверяется, если 1-е условие FALSE) ИЛИ
    2. if(!empty($web['status'])).

Однако, как указал deceze ♦, истинное значение определенной переменной делает !empty Empty избыточным, но вы все равно должны помнить, что PHP предполагает следующие примеры как FALSE:

  • null
  • '' или ""
  • 0.0
  • 0
  • '0' или "0"
  • '0' + 0 + !3

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

  1. Безошибочное и нулевое обнаружение:

    if(isset($web['status'])){
      if($web['status'] === '0' || $web['status'] === 0 ||
         $web['status'] === 0.0 || $web['status']) {
        // not empty: use the value
      } else {
        // consider it as empty, since status may be FALSE, null or an empty string
      }
    }
    

    Общее условие ($web['status']) должно быть оставлено в конце всего оператора.

Ответ 5

if(!empty($web))
{
   echo 'Something';
}

Ответ 6

Вы используете isset, то, что isset делает, проверяет, установлена ​​ли переменная (существует), а не NULL. То, что вы ищете, это empty, который проверяет, является ли переменная пустой или нет, даже если она задана. Чтобы проверить, что пусто, а что нет, посмотрите:

http://php.net/manual/en/function.empty.php

Также проверьте http://php.net/manual/en/function.isset.php для чего именно isset делает это, поэтому вы понимаете, почему он не делает то, что вы ожидаете от него.

Ответ 7

if($var !== '' && $var !== NULL)
{
   echo $var;
}

Ответ 8

Ваша проблема заключается в использовании the_field(), который предназначен для дополнительных пользовательских полей, плагина wordpress.

Если вы хотите использовать поле в переменной, вы должны использовать это: $web = get_field('website');.

Ответ 9

Я надеюсь, что это тоже сработает, попробуйте использовать "is_null"

<?php 
$web = the_field('website');
if (!is_null($web)) {
?>

....html code here

<?php
} else { 
    echo "Niente";
}
?>

http://php.net/manual/en/function.is-null.php

надеюсь, что вам подходит.

Ответ 10

Кажется, люди немного усложняют это. Вернемся к исходному вопросу, "... если переменная не пуста, эхо-код html". "Я бы хотел отобразить некоторый HTML-код, если переменная не пуста, иначе я бы ничего не показывал".

Простой способ:

<?php if (!empty($var)) echo "Some Html Code Here"; ?>

Если ваша переменная не пуста, будет отображаться "Некоторый код HTML здесь". Если он пуст, ничего не произойдет.