-1

我用谷歌搜索并浏览了堆栈溢出。我正在尝试缩短我的代码,并且我在下面有这个工作方法,我想用三元样式重写。有人可以告诉我这是否可能,如果可以,我做错了什么。谢谢。

public function __get($field){ //refactor this using ternary method
    if($field == 'user_id'){
        return $this->uid;
    } else {
        return $this->fields[$field];
    }
}

我从这个开始:

($field == 'user_id') return $this->uid : return $this->fields[$field];

它给了我一个意外的返回错误。

我尝试使用另一个堆栈溢出解决方案,该解决方案在值之前列出了返回值并且没有工作。

return $field == 'user_id' ? $this->uid : $this->fields[$field];

这给了我一些关于意外公共的其他错误,比如我的方法没有正确关闭。

4

1 回答 1

1

我猜是这样的;您将代码重构为:

public function __get($field){ //refactor this using ternary method
        return $field == 'user_id' ? $this->uid : $this->fields[$field];
    }
}

public function otherfunction() { /* ... */ }

大括号不匹配,因此它关闭了类定义,下一个解析器错误是'unexpected public':)

于 2012-09-05T15:17:10.350 回答