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