为什么我不能在我的托管中使用array_filter?

时间:2015-09-01 17:59:31

标签: php

我在localhost中生成了ol或菜单列表项并且测试工作非常好但是当我上传到托管时我遇到了错误:

  

解析错误:语法错误,意外T_FUNCTION

我仔细检查了我的代码,在localhost中它仍然有用。 请帮助我的代码出错。

   function generate_li($product, $parent = NULL) {

        $li = "";
        $p1 = array_filter($product, function($a)use($parent) {
            return $a['parent_id'] == $parent;
        });
        foreach ($p1 as $p) {

            $inner_li = "";
            $p2 = array_filter($product, function($a)use($p) {
                return $a['parent_id'] == $p['id'];
            });
            if ($p2) {
                $inner_li = $this->generate_li($product, $p['id']);
            }
            $li .= "<li class='dd-item' data-id='" . $p['id'] . "'><div class='dd-handle'>" . $p['text'] . "</div>" . $inner_li . "";
            $li .= '<div class="m3dd-handle"><a href="' . base_url('menu_add/' . $p['id'] . '/' . $p['id']) . '">Add</a></div>';
            $li .= '<div class="mdd-handle"><a href="' . base_url('menu_edit/' . $p['relative']) . '">';
            $li .= '<span class="mclose glyphicon glyphicon-edit"></span></a></div>';
            $li .= '<div class="m2dd-handle"><a onclick="return confirm(' . "'" . 'Are you sure want to delete this item' . "'" . ')" href="' . base_url('menu_delete/' . $p['id']) . '"><span class="mclose glyphicon glyphicon-remove"></span></a></div>';
            $li .= "</li>";
        }
        $ol = "<ol class='dd-list'>" . $li . "</ol>";
        return $ol;
    }

1 个答案:

答案 0 :(得分:2)

您的主机可能正在运行旧版本的PHP(低于5.3版本),它不支持闭包或匿名功能。从命令行执行php -v或使用echo PHP_VERSION确认在您的webhost上运行的PHP版本。

由于PHP 5.6是PHP支持的最新版本,因此我强烈建议您查找新主机,因为它们运行的​​PHP版本已经过时,不再接收安全补丁,容易受到攻击。