有没有办法在不声明变量来保存函数的结果的情况下,使用简写if语句中调用的函数的结果,如:
!empty(getType($user)) ? <RESULT OF FUNCTION> : ''
而不是:
!empty(getType($user)) ? getType($user) : ''
有效地调用该函数两次。
答案 0 :(得分:3)
只需将函数的返回值赋给变量,例如
!empty($result = getType($user)) ? $result : ''
//^^^^^^^^^^ ^^^^^^^ See here
修改强>
由于gettype()
总是返回一个字符串,你可以执行以下操作,但是三元组没有意义,因为它总是返回一个字符串。
getType($user)?: ''
答案 1 :(得分:3)
很难看,但是
php > echo (empty($foo = 0)) ? $foo : 'false';
0
由于PHP中赋值操作的结果是赋值,因此定义了$ foo,然后可以在true
子句中使用它。