关于简单的PHP MVC示例

时间:2013-01-18 15:10:27

标签: php model-view-controller

In there  在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>";
}

&amp;&amp; 更改为 || 。或完全!substr($ action,0,1)==“_”已删除。该行不允许运行 $ action

=======================

编辑:问题是路由器无法与&amp;&amp; 一起使用!

2 个答案:

答案 0 :(得分:1)

因为&&and

所以这样

if(function_exists($action) && !substr($action,0,1)=="_"){

如果该功能不在AND,则substr不包含_而不是

这意味着

||or所以这意味着

if(function_exists($action) || !substr($action,0,1)=="_"){

如果函数exsits但字符串包含_则会失败, 或者如果函数不存在,但字符串不包含_,它仍然会失败。

所以&&检查两者是否正常,||无论其中一个是有效还是真,如果另一个失败或无效,它将为您提供上面指定的404

我希望它对你有所帮助,如果不清楚,我会试着用另一种方式描述它

答案 1 :(得分:0)

解决了变化

自:

if(function_exists($action) && !substr($action,0,1)=="_")

要:

if(function_exists($action) && !(substr($action,0,1)=="_"))