我有一个简单的if-else语句 - 如果是真的,我想它呼应此内容:

<div id="login">
  <h2>Login</h2>
  <div class="box">
    <form method="POST" action="index.php/login">
      Username/Email:<br />
      <input type="text" name="username" value="<?php echo set_value("username"); ?>" size="50" class="form" />
      <?php echo form_error("username"); ?>
      Password:<br />
      <input type="password" name="password" value="<?php echo set_value("password"); ?>" size="50" class="form" />
      <?php echo form_error("password"); ?>
      <input type="submit" value="Login" name="login" />
    </form>
  </div>
</div>

如果假做类似的事情。

我应该如何处理这个?我是一个PHP的小白(我一直讨厌的社区在这里!) - 所以我在回声功能站在现在 - 我想我可以设置变量,但仅此而已。

太感谢了!

有帮助吗?

解决方案

因为你一直在做同一件事情:


<?php
if some_condition
{
?>
    <p> I am inside the true condition due : <?php echo "true on condition" ?> </p>
<?
}
else
{
?>
    <p> I am inside the false condition due : <?php echo "false on condition" ?> </p>
<?
}
?>

其他提示

您只需在if / else语句跳出PHP的。

if(true)
{
    ?>
    Regular HTML Here
    <?php
}
else
{
    ?>
    Regular HTML Here
    <?php
}

您可以使用“?>”运营商在任何时候爆发PHP,并与任何控制结构,它应该显示就好像你回显它的代码。另一种选择是使用输出缓冲。

if(true)
    {
        ob_start();

        ?>
        Regular Code Here
        <?php

        $contents = ob_get_contents();
        ob_end_clean();
    }

这将留下的开始之间有什么输出的内容,并结束$内容。

最后,你可以使用一个包括(),只包括你的登录表单,当你真正需要它。 (我喜欢这个方法,因为我可以把登录表单几乎任何地方在网站上非常容易地)

if(true)
{
    include('loginform.php');
}
<?php if ($condition) { ?>

    <div id="login">
      <h2>Login</h2>
      <div class="box">
        <form method="POST" action="index.php/login">
          Username/Email:<br />
          <input type="text" name="username" value="<?php echo set_value("username"); ?>" size="50" class="form" />
          <?php echo form_error("username"); ?>
          Password:<br />
          <input type="password" name="password" value="<?php echo set_value("password"); ?>" size="50" class="form" />
          <?php echo form_error("password"); ?>
          <input type="submit" value="Login" name="login" />
        </form>
      </div>
    </div>

<?php } else { ?>

    other html here

<?php } ?>

只是一个建议;为了可读性和易用性的灵活性,最好是把你想先在变量中显示的内容。

$html = "<form method='post' action='?'> ...... ";

if ($condition)
   $html .= "Error"
else
   $html .= "No problem"
....

<html>
  <body>
    <?php
      echo $html;
    ?>
   </body>
</html>

或者您可以使用的模板。其中一个我建议是 EasyTemplate

有PHP条件的形式这是比较容易阅读对于这一点,使用结肠符号所以不是

<?php if ($condition) { ?>
...html
<?php } else { ?>
...html
<?php } endif; ?>

<?php if ($condition) : ?>
...html
<?php else : ?>
...html
<?php endif; ?>

此外,如果你的配置允许,您可以速记

<?= $variable ?>

代替

<?php echo($variable); ?>

辍学的PHP是做到这一点的最简单的方法。我发现使用备用控制结构使这排序的码要比链花括号更可读的,特别是如果你有很多的HTML。

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

    <div id="login">
      <h2>Login</h2>
      <div class="box">
        <form method="POST" action="index.php/login">
          Username/Email:<br />
          <input type="text" name="username" value="<?php echo set_value("username"); ?>" size="50" class="form" />
          <?php echo form_error("username"); ?>
          Password:<br />
          <input type="password" name="password" value="<?php echo set_value("password"); ?>" size="50" class="form" />
          <?php echo form_error("password"); ?>
          <input type="submit" value="Login" name="login" />
        </form>
      </div>
    </div>

<?php else: ?>

    // display html for a logged-in user

<?php endif; ?>

使用这样的

回波ヶ辆($字符串);

ヶ辆

设置字符串要输出的HTML代码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top