在localhost上工作的语法,不在godaddy服务器上工作

时间:2013-10-23 04:17:05

标签: php codeigniter

有人可以告诉我为什么这段代码可以在我的本地服务器上运行但不能与godaddy一起使用?我在godaddy上得到以下错误......

Parse error: syntax error, unexpected '[' in /home/content/20/10592020/html/foodport/application/controllers/register.php on line 41

以下是我get_userId的{​​{1}}功能。

user_model

以下是public function get_userId(){ $results = $this->obtain_user_info('users', array('username'=>$this->username), true); if(count($results) > 0) { return $results; }else { return array("user_id" => GUEST_ID); } } 功能:

obtain_user_info

这是我的寄存器控制器中的代码,特别是第41行。

private function obtain_user_info($table, $params, $assoc = false){
        $query = $this->db->get_where($table, $params);

        if(!$assoc){
            $results = $query->result();
        }else
        {
            $results = $query->row_array();
        }

        return $results;
    }

3 个答案:

答案 0 :(得分:3)

检查PHP的版本 - 我的猜测是你的本地服务器运行的版本比GoDaddy的服务器更高。你可能需要这样做:

$temp_id = $user->get_userId();
$user_id = $temp_id['user_id'];

答案 1 :(得分:1)

具体来说,你需要PHP> 5.4.0直接访问函数返回数组,如:

$user_id = $user->get_userId()['user_id'];

在5.4.0之前,您需要将函数的返回值分配给变量并访问它:

$result  = $user->get_userId();
$user_id = $result['user_id'];

但我会问,如果你只返回一个值,为什么要返回一个数组呢?

答案 2 :(得分:1)

$user_id = $user->get_userId()['user_id'];

http://php.net/manual/en/language.types.array.php#example-88

这是数组解除引用,可在php 5.4中找到 但通常godaddy得到了php 5.3.3

根据您的托管计划,您可以更改它。