Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP5.2-如何解决在使用MVC初学者教程示例时抛出的解析语法错误?_Php_Arrays_Version - Fatal编程技术网

PHP5.2-如何解决在使用MVC初学者教程示例时抛出的解析语法错误?

PHP5.2-如何解决在使用MVC初学者教程示例时抛出的解析语法错误?,php,arrays,version,Php,Arrays,Version,我从中获得了以下代码段,但它引发了一个错误: 解析错误:语法错误,在我的主机上第20行的/usr/home/domains/xyz.pl/public_html/my-soft/routes.php中出现意外的“[”,该主机的php版本为5.2.17 我在stackoverflow中搜索了一个关于5.2和5.4数组差异的对应主题,但我找不到任何有意义的内容,因此我可以解决这个特殊错误—两个表都命名了,最终的解决方案应该符合这个事实->表名“页面”,“帖子”在表初始化下面的条件语句中使用 你能告诉

我从中获得了以下代码段,但它引发了一个错误:

解析错误:语法错误,在我的主机上第20行的/usr/home/domains/xyz.pl/public_html/my-soft/routes.php中出现意外的“[”,该主机的php版本为5.2.17

我在stackoverflow中搜索了一个关于5.2和5.4数组差异的对应主题,但我找不到任何有意义的内容,因此我可以解决这个特殊错误—两个表都命名了,最终的解决方案应该符合这个事实->表名“页面”,“帖子”在表初始化下面的条件语句中使用

你能告诉我如何在不改变PHP版本的情况下解决这个问题吗

 <?php
  function call($controller, $action) {
    require_once('controllers/' . $controller . '_controller.php');

    switch($controller) {
      case 'pages':
        $controller = new PagesController();
      break;
      case 'posts':
        // we need the model to query the database later in the controller
        require_once('models/post.php');
        $controller = new PostsController();
      break;
    }

    $controller->{ $action }();
  }

  // we're adding an entry for the new controller and its actions
  $controllers = array('pages' => ['home', 'error'],
                       'posts' => ['index', 'show']);

  if (array_key_exists($controller, $controllers)) {
    if (in_array($action, $controllers[$controller])) {
      call($controller, $action);
    } else {
      call('pages', 'error');
    }
  } else {
    call('pages', 'error');
  }
?>

看起来他们正试图制作一个多维数组

尝试将代码更改为:

$controllers = array('pages' => array('home', 'error'),
                   'posts' => array('index', 'show'));

将PHP5.4中的['home','error']更改为数组'home','error',['index','show']更改为数组'index','show'。可以将数组声明为$array=[];。在该版本之前,它必须是$array=array;特别是,。不幸的是,子数组的命名与此无关,子数组的命名只在几行之后使用,因此coderodur anser是不正确的,而Gogeta70 answer给出的结果是正确的。它与多维无关。简单地说,OP的PHP版本无法用括号初始化数组。您可以我误解了我的意思。我的意思是,他们与他们创建数组的方法不一致,他们正在创建多维数组,OP似乎不理解。我正在澄清代码的作用。非常有效,谢谢!