题
我有一个简单的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; ?>
不隶属于 StackOverflow