if( strpos($_SERVER['REQUEST_URI'], '/') === TRUE)
不工作。
我想要实现的是,当在主页上,例如http://www.amazon.co.uk/,它会触发什么是内部的声明。
这可能会因为这是从另一个页面重定向而变得复杂
var_dump ($ _SERVER [' REQUEST_URI ']);=/字符串(1)echo $ _SERVER [' REQUEST_URI '];= "/"
php version 5.4
谢谢你的帮助,我的问题已经解决了
这是因为,就像文档告诉你的那样,strpos()
永远不会返回true。
返回一个正整数(已找到)或布尔值false(未找到)。
检查!== false
strpos()
函数返回一个数字值,表示第二个字符串在第一个字符串中的位置。因此,它永远不会等于TRUE。
strpos()可以返回FALSE,因此您应该写
if( strpos($_SERVER['REQUEST_URI'], '/') !== FALSE)
strpos()
from manual:
strpos -查找子字符串在a中第一次出现的位置字符串
所以你在检查返回值是否为TRUE,它永远不会为TRUE。您需要使用!== FALSE进行检查。为什么?因为===检查变量的值和类型。当您使用==时,它将只检查value,当value为0时,PHP将其强制转换为FALSE,因为PHP是松散类型的。