Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP三元运算符返回特定值_Php_Operator Keyword_Ternary - Fatal编程技术网

使用PHP三元运算符返回特定值

使用PHP三元运算符返回特定值,php,operator-keyword,ternary,Php,Operator Keyword,Ternary,我用谷歌搜索了一下,已经浏览了堆栈溢出。我试图缩短我的代码,我有下面这个工作方法,我想用三元风格重写。有人能告诉我这是否可能,如果可能,我做错了什么。谢谢 public function __get($field){ //refactor this using ternary method if($field == 'user_id'){ return $this->uid; } else { return $this->fields[

我用谷歌搜索了一下,已经浏览了堆栈溢出。我试图缩短我的代码,我有下面这个工作方法,我想用三元风格重写。有人能告诉我这是否可能,如果可能,我做错了什么。谢谢

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

这给了我一些关于意外公共的其他错误,比如我的方法没有正确关闭;您将代码重构为:

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

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

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

您的最后一个代码段没有问题。你的错误信息听起来像是你在做别的错事——后者绝对是正确的方式;也许你可以分享确切的错误信息。你能发布你得到的确切错误吗?顺便说一句,意外的返回错误可能是由于缺少
你能发布方法的完整代码吗?到目前为止,我猜你的结束方括号的数量可能是错误的。很可能。我只是有同样的想法:)