PHP if语句不确定I';我错了
我试图指定我的徽标显示在某些页面上,而不是其他页面上,我不希望它显示在主页和/index.php上。我有大的标志出现和消失,因为我想它,所以我认为我可以做相反的小标志,但我一定是做错了什么。这是我目前的代码:PHP if语句不确定I';我错了,php,if-statement,Php,If Statement,我试图指定我的徽标显示在某些页面上,而不是其他页面上,我不希望它显示在主页和/index.php上。我有大的标志出现和消失,因为我想它,所以我认为我可以做相反的小标志,但我一定是做错了什么。这是我目前的代码: <?php $dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' || $dunpage != '/') {?> <h1 class="small-logo"> <a hr
<?php
$dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' || $dunpage != '/') {?>
<h1 class="small-logo">
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
<?php }
?>
<?php
$currentpage = $_SERVER['REQUEST_URI']; if ($currentpage == '/' || $currentpage == '/index.php') {?>
<h1 class="logo";>
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
<?php }
?>
试试看
对于您的小徽标。您正确地否定了==运算符,但没有否定| |运算符。您的意思是,如果dunpage不是/index.php或dunpage不是/,那么就这样做,这基本上意味着总是这样做。将小徽标的| |更改为&。在第一种情况下,您应该使用逻辑AND,而不是逻辑OR:
$dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' || $dunpage != '/') {?>
// Should be
$dunpage = $_SERVER['REQUEST_URI']; if ($dunpage != '/index.php' && $dunpage != '/') {?>
实际上,您说的是“如果页面不是
index.php
,或者不是/
,那么就采取行动”,因此在这两种情况下,情况正好相反。例如,如果它不是index.php
,它可能是/
。为什么不使用else
<?php
$currentpage = $_SERVER['REQUEST_URI']; if ($currentpage == '/' || $currentpage == '/index.php') { ?>
<h1 class="logo";>
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
<?php
} else {
?>
<h1 class="small-logo">
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
<?php
}
?>
(实际上,您并没有提到您想要显示的是一个大的或小的徽标,但我必须假设这里就是这种情况。)
在这种情况下,也可以使用in_array()
<?php
$displayMainLogo = array('/', '/index.php');
if ( in_array($_SERVER['REQUEST_URI'], $displayMainLogo) ) { ?>
<h1 class="logo";>
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
<?php
} else {
?>
<h1 class="small-logo">
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
<?php
}
?>
如果你知道如何做一个三元(http://php.net/manual/en/language.operators.comparison.php),那么这是你能做的最简洁的了
<h1 class="<?php echo (in_array($_SERVER['REQUEST_URI'], $displayMainLogo)) ? 'logo' : 'small-logo' ?>";>
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>
$dunpage!='/index.php“| |$dunpage!=”/“
此条件的计算结果始终为TRUE
谢谢大家的快速回复。他们很有帮助。我相信这为我节省了很多时间:-)@user1021330欢迎使用堆栈溢出。如果您对答案感到满意,请单击分数下方的复选标记,将其标记为已接受。
<h1 class="<?php echo (in_array($_SERVER['REQUEST_URI'], $displayMainLogo)) ? 'logo' : 'small-logo' ?>";>
<a href="/" title="<?php echo $siteName; ?>"><span><?php echo $siteName; ?></a>
</h1>