我正在尝试制作路由系统。
我想做的事:
网址:http://localhost/wiki.php?post_id=1
调用第二个如果
网址:http://localhost/wiki.php?post_id=1&action=upvote
http://localhost/wiki.php?post_id=1&action=downvote
如果先调用
这是路由系统:
if(isset($_GET['post_id']) & ((isset($_GET['action']) ? $_GET['action'] : null) == "upvote" || "downvote")){
//Do stuff
}else if(isset($_GET['post_id'])){
//Do stuff
}
问题:
Url's:http://localhost/wiki.php?post_id=1&action=upvote
http://localhost/wiki.php?post_id=1&action=downvote
像他们应该的那样工作。
但是 url:http://localhost/wiki.php?post_id=1
调用第一个而不是第二个,如果太...
注意:未定义索引:第 18 行 D:\xampp\htdocs\controllers\WikiController.php 中的操作
第 18 行:$rate = $_GET['action'];
它在第一个 if 里面。
在测试时我发现如果我改变 if(isset($_GET['post_id']) & ((isset($_GET['action']) ? $_GET['action'] : null) == "upvote" || "downvote")){
也
if(isset($_GET['post_id']) & ((isset($_GET['action']) ? $_GET['action'] : null) == "upvote")){
或者
if(isset($_GET['post_id']) & ((isset($_GET['action']) ? $_GET['action'] : null) == "downvote")){
它工作正常。但我想学习如何正确地做到这一点,而不仅仅是简单地制作 2 个不同的路由器。
这部分(exp) == "upvote" || "downvote"
不像你想象的那样工作。它只测试是否exp
等于"upvote"
,第二部分"downvote"
被理解为一个布尔值,即true
,所以你留在替代的第一部分..
尝试
if(isset($_GET['post_id']) && (($exp = (isset($_GET['action']) ? $_GET['action'] : null)) == "upvote" || $exp == "downvote")){
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句