简单的PHP路由,带有针对php7及更低版本的未定义网址

洛马蒂奇

尝试在已安装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();
?>
cn007b

试试这个:

function e() {
    $p = $_GET['p'];
    $k = isset($this->r[$p]) ? $this->r[$p] : $this->r[''];
    $k();
}

它应该工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有JDK 7或更低版本的Eclipse Neon

来自分类Dev

带有iframe嵌入的Android WebView在4.2.2及更低版本中未显示

来自分类Dev

Opcache-在PHP5.4和更低版本中清理缓存

来自分类Dev

是否可以使用Material Design(聚合物)针对更低版本的android 4.3和更低版本开发phonegap应用程序

来自分类Dev

iOS7和更低版本下不同的NSData initWithData分配行为

来自分类Dev

我们可以在iOS7及更低版本上使用Swift吗?

来自分类Dev

NSDateComponents.setValue()不适用于iOS 7和更低版本

来自分类Dev

除了Internet Explorer 8及更低版本,还有其他功能吗?

来自分类Dev

IE8及更低版本中具有selectivizr的CSS3伪类

来自分类Dev

.NET 3.5及更低版本中内联的替代方法

来自分类Dev

KitKat(及更低版本)设备上的Android Material Design

来自分类Dev

为python 2.5.1或更低版本安装pymysql

来自分类Dev

Java 5或更低版本中的抽象类

来自分类Dev

Android 4.4及更低版本上的SSLHandshakeException

来自分类Dev

Android M及更低版本中的LineHeightSpan

来自分类Dev

在Android 4.4或更低版本上显示为FAB

来自分类Dev

IE9及更低版本中的Youtube API

来自分类Dev

Android 4及更低版本上的Android ASyncTask崩溃

来自分类Dev

Android M及更低版本中的LineHeightSpan

来自分类Dev

如何强制MFC使用Redistributable 2013或更低版本

来自分类Dev

正在检查程序所需的PHP的最低版本?

来自分类Dev

在Java 7或更低版本中,HOWTO使用在地图中找到的键/值过滤地图对象列表

来自分类Dev

在Java 7或更低版本中,HOWTO使用在地图中找到的键/值过滤地图对象列表

来自分类Dev

标题意外出现在 iOS 10 及更低版本的所有视图控制器中

来自分类Dev

extract($ _ GET)PHP最终带有未定义的变量

来自分类Dev

PHP带有POST的未定义变量

来自分类Dev

php中带有类的未定义属性

来自分类Dev

调用未定义的函数curl_init(),即使它已在php7中启用

来自分类Dev

PHP路由未定义laravel

Related 相关文章

  1. 1

    带有JDK 7或更低版本的Eclipse Neon

  2. 2

    带有iframe嵌入的Android WebView在4.2.2及更低版本中未显示

  3. 3

    Opcache-在PHP5.4和更低版本中清理缓存

  4. 4

    是否可以使用Material Design(聚合物)针对更低版本的android 4.3和更低版本开发phonegap应用程序

  5. 5

    iOS7和更低版本下不同的NSData initWithData分配行为

  6. 6

    我们可以在iOS7及更低版本上使用Swift吗?

  7. 7

    NSDateComponents.setValue()不适用于iOS 7和更低版本

  8. 8

    除了Internet Explorer 8及更低版本,还有其他功能吗?

  9. 9

    IE8及更低版本中具有selectivizr的CSS3伪类

  10. 10

    .NET 3.5及更低版本中内联的替代方法

  11. 11

    KitKat(及更低版本)设备上的Android Material Design

  12. 12

    为python 2.5.1或更低版本安装pymysql

  13. 13

    Java 5或更低版本中的抽象类

  14. 14

    Android 4.4及更低版本上的SSLHandshakeException

  15. 15

    Android M及更低版本中的LineHeightSpan

  16. 16

    在Android 4.4或更低版本上显示为FAB

  17. 17

    IE9及更低版本中的Youtube API

  18. 18

    Android 4及更低版本上的Android ASyncTask崩溃

  19. 19

    Android M及更低版本中的LineHeightSpan

  20. 20

    如何强制MFC使用Redistributable 2013或更低版本

  21. 21

    正在检查程序所需的PHP的最低版本?

  22. 22

    在Java 7或更低版本中,HOWTO使用在地图中找到的键/值过滤地图对象列表

  23. 23

    在Java 7或更低版本中,HOWTO使用在地图中找到的键/值过滤地图对象列表

  24. 24

    标题意外出现在 iOS 10 及更低版本的所有视图控制器中

  25. 25

    extract($ _ GET)PHP最终带有未定义的变量

  26. 26

    PHP带有POST的未定义变量

  27. 27

    php中带有类的未定义属性

  28. 28

    调用未定义的函数curl_init(),即使它已在php7中启用

  29. 29

    PHP路由未定义laravel

热门标签

归档