基本php if/else语句有问题 如果url中有“test1”,则此操作有效:
做点什么 做点别的基本php if/else语句有问题 如果url中有“test1”,则此操作有效:,php,if-statement,Php,If Statement,做点什么 做点别的 如果url中有“test1”,则此操作无效: 做点什么 做点别的 问题: 一,。 当我尝试运行第二个选项时,php每次都会输出“做其他事情”——我知道这是最基本的,但为什么呢 二,。 为什么在这种情况下,==TRUE不起作用,只有==FALSE有效 任何帮助都将不胜感激——我花了大量的时间研究这个问题,如果是因为一个愚蠢的错误,我感到非常抱歉 干杯你不应该用==TRUE松散地测试,因为你可能会得到假阳性,记住0测试松散时是错误的,而在strpos中获得0是有效的,
如果url中有“test1”,则此操作无效:
做点什么
做点别的
问题: 一,。 当我尝试运行第二个选项时,php每次都会输出“做其他事情”——我知道这是最基本的,但为什么呢 二,。 为什么在这种情况下,
==TRUE
不起作用,只有==FALSE
有效
任何帮助都将不胜感激——我花了大量的时间研究这个问题,如果是因为一个愚蠢的错误,我感到非常抱歉
干杯你不应该用
==TRUE
松散地测试,因为你可能会得到假阳性,记住0
测试松散时是错误的,而在strpos
中获得0
是有效的,因为这实际上是针相对于字符串开头存在的位置
考虑一下这个片段:
<?php $_SERVER['HTTP_HOST'] = 'test1.com'; ?>
<?php if(strpos($_SERVER['HTTP_HOST'], 'test1') == TRUE): ?>
<p>Do something</p>
<?php else : ?>
<p>Do something else</p>
<?php endif; ?>
事实上,它是被覆盖的。阅读红色方框注释。试试这个
if(strpos($_SERVER['REQUEST_URI'], 'test1') OR strpos($_SERVER['REQUEST_URI'], 'test2') !== FALSE){
echo"<p>Do something</p>";
} else {
<p>Do something else</p>
}
if(strpos($\u SERVER['REQUEST\u URI'],'test1')或strpos($\u SERVER['REQUEST\u URI'],'test2')!==FALSE){
回声“做点什么”;
}否则{
做点别的
}
不要打开和关闭php标记,因为这会减慢页面处理速度。谢谢。请允许我问一下,为什么要先将HTTP_主机设置为某个值—这只是一种好的编程实践吗?干杯Ben@CMSCSS不,我只是为这个特定的例子显式地设置了一些值。很高兴这有帮助
<?php $_SERVER['HTTP_HOST'] = 'test1.com'; ?>
<?php if(strpos($_SERVER['HTTP_HOST'], 'test1') == TRUE): ?>
<p>Do something</p>
<?php else : ?>
<p>Do something else</p>
<?php endif; ?>
<?php $_SERVER['HTTP_HOST'] = 'test1.com'; ?>
<?php if(
(strpos($_SERVER['HTTP_HOST'], 'test1') !== false) OR
(strpos($_SERVER['HTTP_HOST'], 'test2') !== FALSE)) : ?>
<p>Do something</p>
<?php else : ?>
<p>Do something else</p>
<?php endif; ?>
if(strpos($_SERVER['REQUEST_URI'], 'test1') OR strpos($_SERVER['REQUEST_URI'], 'test2') !== FALSE){
echo"<p>Do something</p>";
} else {
<p>Do something else</p>
}