0

有人能告诉我为什么这段代码可以在我的本地服务器上运行,但不能在 Godaddy 上运行吗?我在godaddy上收到以下错误...

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

这是get_userId我的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功能:

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;
    }

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

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

3 回答 3

3

检查 PHP 的版本 - 我的猜测是您的本地服务器运行的版本比 GoDaddy 的服务器更高。您可能必须执行以下操作:

$temp_id = $user->get_userId();
$user_id = $temp_id['user_id'];
于 2013-10-23T04:20:44.817 回答
1

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

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

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

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

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

于 2013-10-23T04:27:28.900 回答
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

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

于 2013-10-23T04:27:43.107 回答