Я глубоко смущен упражнением Линды и задавался вопросом, может ли кто-нибудь объяснить этот условный ... беспорядок, который беспокоит меня. Я изучаю PHP и, хотя раньше работал с условными операторами, это упражнение меня сбивает с толку.

ИСТОРИЯ ИНФОРМАЦИИ:

Упражнение состоит в том, чтобы отобразить различные разделы HTML в зависимости от того, является ли посетитель членом или нет. Это простая задача, не было создано ни одной страницы входа, и все жестко запрограммировано.

МОЙ КОД:

Вот сокращенная версия части упражнения, с которой я борюсь:

<?php $member = 0 ?>
<!DOCTYPE html>
<html lang="en">
<body>
  <div id="wrapper">

    <?php if (!member) : ?> //CONFUSING PART
    <section class = "non-member">
        <p>This is non-member information</p>
    </section>
    <?php endif ?>

  </div>
</body>
</html>

МОЯ ПРОБЛЕМА:

Что меня сбивает с толку, так это то, что мы устанавливаем для переменной с именем $ member значение 0, что, как я понимаю, означает, что переменная неявно ложна из-за стандартов PHP.

Инструктор говорит, что, набирая $ member = 0, мы говорим, что посетитель не вошел в систему как член. Исходя из этого, я предполагаю, что это означает, что посетитель не является членом. (Поправьте меня, если я здесь не прав.)

Однако при определении того, будет ли отображаться HTML-раздел, не являющийся участником, инструктор набрал:

<?php if (!$member) : ?>

Он сказал, что это означает, что участник НЕ является участником, а значит, не является участником.

МОЙ ВОПРОС:

Но как это правда? Если $ member изначально имеет значение false (что означает, что посетитель не является участником), не будет "!" перевернуть значение, таким образом, означая, что посетитель ЯВЛЯЕТСЯ членом, потому что теперь member истинно?

Если я читаю совершенно неправильно, дайте мне знать.

Большое спасибо всем, кто нашел время, чтобы прочитать это и помочь мне!

1
nilajawill 6 Дек 2018 в 21:22

1 ответ

Лучший ответ

Код внутри блока if выполняется, если условие if истинно. Таким образом, когда !$member оценивается как истина, когда $member = 0, он показывает текст «не относящейся к члену информации».

<?php if (!$member) : ?> //CONFUSING PART
<section class = "non-member">
    <p>This is non-member information</p>
</section>
<?php endif ?>

Вы можете думать об этом как «если не член, сделайте это».

1
Don't Panic 6 Дек 2018 в 18:31