Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本php if/else语句有问题 如果url中有“test1”,则此操作有效:_Php_If Statement - Fatal编程技术网

基本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>
}