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; 一起使用!
答案 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)=="_"))