PHP 通过 Lynda Exercise 为会员和非会员提供的条件语句

PHP Conditional Statements for members and non members via Lynda Exercise

我对 Lynda 练习深感困惑,想知道是否有人可以解释这种有条件的……混乱的混乱局面。我正在学习 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 表示访问者未以会员身份登录。基于此,我假设这意味着访问者是非会员。 (如果我在这里错了,请纠正我。)

但是,在确定是否显示 "non-member" HTML 部分时,教师键入:

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

他说这意味着会员不是会员,因此是非会员。

我的问题:

但这是怎么回事呢?如果 $member 最初是假的(意味着访问者是非会员),就不会“!”颠倒意思,因此意味着访问者是会员,因为现在会员是真的?

如果我完全读错了,请告诉我。

非常感谢所有花时间阅读本文并帮助我的人!

如果 if 条件的计算结果为真,则执行 if 块中的代码。因此,当 !$member$member = 0 时计算为真时,它显示 "non-member information" 文本。

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

你可以把它想象成"if not member, do this"