繁体   English   中英

语法在localhost上运行,而不在godaddy服务器上运行

[英]Syntax working on localhost, not working on godaddy server

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

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

这是我的user_modelget_userId函数。

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'];

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

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

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

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

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

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

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

$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

您可以根据自己的托管计划进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM