关于简单的PHP MVC示例
In there 存在一个简单的PHP MVC示例。问题是,这个例子只是工作时,这个关于简单的PHP MVC示例
$action = $_GET['action'];
if(function_exists($action) && !substr($action,0,1)=="_"){
$action();
}else{
echo "<h1>404 Page Not Found</h1><p>The page you requested could not be found</p>";
}
改为:
$action = $_GET['action'];
if(function_exists($action) || !substr($action,0,1)=="_"){
$action();
}else{
echo "<h1>404 Page Not Found</h1><p>The page you requested could not be found</p>";
}
& &改为||。或完全!substr($ action,0,1)==“_”删除。这条线是不允许运行的$ action?
=======================
编辑:问题是,路由器不& &工作!
解决与变化
来源:
if(function_exists($action) && !substr($action,0,1)=="_")
收件人:
if(function_exists($action) && !(substr($action,0,1)=="_"))
其因为&&
是and
所以这样
if(function_exists($action) && !substr($action,0,1)=="_"){
如果函数exsits AND
的substr
不包含_不是运行
这意味着
||
是or
所以这意味着
if(function_exists($action) || !substr($action,0,1)=="_"){
如果函数exsits但字符串包含_
它会失败, 或者如果功能不exsists,但是字符串犯规包含_
它仍然会失败。
所以&&
检查如果两者都好,什么||
不管其中之一是有效的还是真实的,如果对方失败或无效的,它作为你在上面
指定会给你404我希望它帮助你,如果它不是明确的,我会尽力来形容它在诺特尔方式
我想你不理解我。我的语法没有问题,我的谈话只是在** && **改为** || **路由器工作时。好? – msoa
哦,太难过了 –
你为什么要这样? _通常是跟踪私有函数,这些函数只能在其他类函数中使用。 – Jason
为什么这个标签为“mvc”?问题应该是“substr()如何工作?” –