-1

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

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

编辑:问题是路由器不能与&&一起使用!

4

2 回答 2

1

因为&&and

所以这样

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

如果函数AND存在substr不包含_而不是运行

这表示

||所以or这意味着

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

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

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

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

于 2013-01-18T15:23:13.117 回答
0

用变化解决

从:

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

到:

if(function_exists($action) && !(substr($action,0,1)=="_"))
于 2013-01-18T17:45:36.360 回答