三元运算符 - 我做错了什么?

时间:2012-07-31 07:24:15

标签: php

$profilePic = isset( $userservice->getProfilePic($userid))      
              ?  filter($userservice->getProfilePic($userid)) 
              : '<img></img>';

返回错误:

Fatal error: Can't use method return value in write context

我在这里做错了什么?

3 个答案:

答案 0 :(得分:9)

您只能将isset与变量一起使用,而不能使用函数的返回值,因为isset不是函数,而是语言结构。

附录:对allow passing arbitrary expression arguments to isset and empty进行了投票,但最终isset已从最终实施中删除。

答案 1 :(得分:3)

isset仅适用于变量。你不需要它来实现功能。你的三元运算符很好。

请参阅The Definitive Guide To PHP's isset And empty

答案 2 :(得分:0)

尝试:“

$tempPic=$userservice->getProfilePic($userid);
         $profilePic = isset($tempPic ) ?  filter($userservicegetProfilePic($userid))  : '<img></img>';