发布于2023-12-27 22:25 阅读(639) 评论(0) 点赞(19) 收藏(2)
尝试在安装了 php 5.4 版本的服务器上使用此 php 路由类。此代码可以工作,但不适用于未定义的 URL。它还有一个注释行($k[$_GET['p']] ?? $k[''])();
,其中包含 php7 的正确代码行为,这使得代码可以与//404
注释的代码块一起使用。
如何为php5.4编写相同的功能?我想我想检查并替换未定义的变量来$k['']
检查 URL 并输出“找不到页面”消息,但是我无法正确完成它。
有任何想法吗?
<?php
class R
{
private $r = [];
function a($r, callable $c){
$this->r[$r] = $c;
}
function e(){
$k = $this->r;
// working php7 version: ($k[$_GET['p']] ?? $k[''])();
// trying to make the same for php5.4 here:
$k[$_GET['p']]();
}
}
$router = new R;
// Home
$router->a('/', function(){
echo 'Home';
});
// About
$router->a('/about', function(){
echo 'About';
});
// 404 (works only with php7 version line of code)
$router->a('', function(){
echo 'Page Not Found';
});
$router->e();
?>
尝试这个:
function e() {
$p = $_GET['p'];
$k = isset($this->r[$p]) ? $this->r[$p] : $this->r[''];
$k();
}
它应该有效。
作者:黑洞官方问答小能手
链接:http://www.phpheidong.com/blog/article/550923/20a2f88842af8e890b80/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!