我有stdclass [括号]的问题,我不知道为什么

时间:2014-05-22 06:41:28

标签: php stdclass

我在我的电脑上建立了一个网站,使用XAMPP和最新的php版本,到目前为止一切看起来都很好。现在,我刚买了一个DNS,网络主机等,我在每一页上总能遇到的唯一问题就是:

  

解析错误:语法错误,意外'[',期待','或';'在第61行的/home/cbifina1/public_html/classes/Credit.php

这就是你在那条线上发现的:

$this->_db->results()[$x]->form_id

在另一页中,我遇到了同样的问题,我修复了

$this->_db->results()[0]->id

$this->_db->first()->id

但是在循环中使用了该变量,我被困在这里。

那为什么我的括号不可读?我的php服务器是php版本5.3.28 ..我不认为这可能是问题..

有什么建议吗? :/

以下编辑5/22/14 ---------------------------------------- ---

所以,假设我在这里有这两个功能

public function results() {
    return $this->_results;
}

public function first() {
    return $this->results()[0];
}

如果我使用的是低于5.4的PHP,我怎么能摆脱[0]?

1 个答案:

答案 0 :(得分:2)

实际上,你需要5.4来使用那个结构。 The docs说;

  

从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。之前只能使用临时变量。

编辑:关于如何更改5.3代码的后续操作需要使用临时变量和索引。这意味着翻译;

public function first() {
    return $this->results()[0];
}

...到...

public function first() {
    $tmp = $this->results();
    return $tmp[0];
}