首页 > 解决方案 > 通过 Lynda 练习为会员和非会员提供 PHP 条件语句

问题描述

我对 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,我们说访问者没有以会员身份登录。基于此,我假设这意味着访问者是非会员。(如果我在这里错了,请纠正我。)

但是,在确定是否显示“非会员”HTML 部分时,讲师键入:

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

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

我的问题:

但这是真的吗?如果 $member 最初为假(意味着访问者是非会员),则不会“!” 反转含义,因此意味着访问者是会员,因为现在会员是真实的?

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

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

标签: phpif-statementconditional

解决方案


如果 if 条件评估为 true,则执行 if 块中的代码。因此,当!$member评估为真时$member = 0,它显示“非成员信息”文本。

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

您可以将其视为“如果不是会员,请执行此操作”


推荐阅读