【发布时间】:2013-02-15 22:17:08
【问题描述】:
我有这个简单的一行代码:
$thisUserName = is_array($user) ? $user->name : $user;
这里,$thisUserName 是由 $user 给出的,意味着条件 is_array 返回 false,即使 print_r 表明 $user 是一个数组。
任何想法,任何人?
谢谢。
PS。我尝试将其更改为echo is_array($user) ? 'yes' : 'no',它正在回显没有。
编辑:
print_r($user) 给出
stdClass Object
(
[id] => 169
[name] => Cedric
[username] => pulpfiction
[email] => xxx@gmail.com
[password] => c22601b4ed1ac11a80955d6c0eeb1933
[password_clear] =>
[usertype] => Registered
[block] => 0
[sendEmail] => 0
[gid] => 18
[registerDate] => 2013-01-30 11:12:10
[lastvisitDate] => 2013-02-24 19:45:45
[activation] =>
[params] =>
[aid] => 1
[guest] => 0
)
【问题讨论】:
-
$user 是数组还是实例化对象?因为 $user->name 应该错误是 $user is an array
-
您确实意识到
->运算符属于对象,而不是数组,对吧?也许你需要is_object() instead? Or maybe you need to use[]` 而不是->。 -
var_dump($user) 显示了什么?
-
如果你想检查数组中的那个用户,那么它可能应该是 in_array。
标签: php arrays conditional-statements