Php 如果没有遵循正确的程序?
我正在开发一个内容管理系统,到目前为止还不错 我正在尝试让系统与维护模式系统一起工作。 以下是脚本中显示维护内容的代码:Php 如果没有遵循正确的程序?,php,if-statement,Php,If Statement,我正在开发一个内容管理系统,到目前为止还不错 我正在尝试让系统与维护模式系统一起工作。 以下是脚本中显示维护内容的代码: if ($maintenance['value'] == "1") {?> <div id="content"> <div id="errmsg"> <?php echo $maintenance['notes']; ?> </div> </div> <?
if ($maintenance['value'] == "1") {?>
<div id="content">
<div id="errmsg">
<?php echo $maintenance['notes']; ?>
</div>
</div>
<? } else {?>
<h1><?php echo $title; ?></h1>
<hr /><br />
<div id="content">
<?php echo $contents;
if (!$content) {
include ('includes/error/404.php');}?>
</div>
<? } ?>
if($maintenance['value']==“1”){?>
我可以验证$maintenance['value']变量是否正常工作,但是脚本的这一部分没有正常工作。该值当前设置为1,但它仍然在else中显示内容
有什么想法吗?看来您在
else
语句后面有一个额外的}。您可以尝试使用不同的语法。您可以使用
<?php if ($maintenance['value'] == "1") : ?>
<!-- HTML STUFF HERE -->
<?php ELSE: ?>
<!-- more html stuff here -->
<?php ENDIF; ?>
根据我的经验,PHP解析器可以更好地解析这一点
另请参见倒车怎么样
if (!isset($maintenance['value'])) { ?>
// echo normal non-maintenance stuff
<?php } else { ?>
// display maintenance stuff
<?php
}
“;查看原因
另外,仅仅因为我在第一次运行if/else
语句时表现出典型的残暴和健忘症,您确定在实时代码中使用的是比较运算符而不是赋值运算符吗
针对OP的以下评论进行了后期编辑:
这可能不起作用,数据库中的值为1或0。我应该在OP中更清楚地说明这一点。 如果您知道$maintenance['value']是布尔值,1或0,那么为什么不使用这些知识并制作:
<?php if ($maintenance['value']) : ?>
if($maintenance['value']==“0”){?>
//回显正常的非维护内容
我支持Cassy提出的符号。我的评论:
我不确定PHP是如何处理数据类型的,但我只是检查了一下,根据这一点,即使$maintenance['value']
包含整数1
(您将其与字符串“1”
进行比较),您的表达式也应该计算为true
另一个值是什么,$maintenance['value']
可以保存?“0”?如果是这样,为什么不将TRUE
和FALSE
分配给变量,以便保存?无论如何,您可以试着这样编写表达式:
如果$maintenance['value']
包含以下任何值,则计算结果为TRUE
:
- 真的
- 一,
- 任意整数!=0
- “1”
- 任何字符串!=“0”
正如其他人所说,您正在尝试比较int和string。您可以使用“1”或“1”或“0”将所有内容更改为“1”“或0。另一种更好的方法是使用特定于类型的比较运算符,如==
或!==
来匹配值和类型;并使用布尔术语true和false使您和解释器痛苦地明白您正试图做什么
您还可以尝试使用define(“维护”,true)
例如,确保值不会在脚本执行过程中发生更改。尽管如此,这可能会使更改服务器端设置更加困难,除非您向文件写入新值。尽管如此,在服务器尝试为另一个客户端读取文件时,您可能会遇到写入问题…为什么有两个 }
in当关闭您的else
语句时?复制时一定是一个工件,我看不到其他结束括号。因此,我建议不要使用短php标记。使用full。感谢Joel,我通常在将代码移动到生产环境之前转换为full:)有趣的是,这没有做任何事情:s可能不起作用,数据库中的值为1或0。我应该在行动中说得更清楚。
<?php if ($maintenance['value']) : ?>