我的PHP生疏了,我正在努力解决这个问题。我正在使用论坛软件(SMF),并且无法真正告诉我正在尝试检查的变量的值。
所有成员都被分配了post_group
例如高级会员
某些用户被分配了一个特殊的group
,例如版主。
我想将变量$memberType
设置为group
(如果有),如果不是post_group
。
E.g
用户是主持人和高级会员。 $memberType = 'Moderator'
用户只是初级会员。 $memberType = 'Junior Member'
这是我尝试过的:
$memberType = is_null($message['member']['group']) ? $message['member']['group'] : $message['member']['post_group'];
我还尝试了empty()
和isset()
而不是is_null
,但似乎没有一个人能够得到一致的结果。
is_null
仅适用于post_group
,empty()
仅应用post_group
,但奇怪的是不适用于我的“新手”类。 isset()
仅适用post
。
我能以任何方式得到一致的结果吗?
答案 0 :(得分:1)
我猜你在问题中错过了!
。 empty
应该适用于您的方案。符合empty
如果var存在并且具有非空的非零值,则返回FALSE。否则返回TRUE。
以下内容被认为是空的:
- “”(空字符串)
- 0(0为整数)
- 0.0(0作为浮动)
- “0”(0作为字符串)
- NULL
- FALSE
- array()(空数组)
- $变种; (声明的变量,但没有值)
总而言之,这样的事情应该有效。
$memberType = empty($message['member']['group']) === FALSE ? $message['member']['group'] : $message['member']['post_group'];
答案 1 :(得分:0)
您可能需要的是:
$memberType = empty($message['member']['group']) ? $message['member']['post_group'] : $message['member']['group'];
基本上是说(伪代码):
IF $message['member']['group']
IS EMPTY :
$memberType = $message['member']['post_group'];
ELSE :
$memberType = $message['member']['group'];
以下值被视为空:
""
(空string
)0
(0
为integer
)0.0
(0
为float
)"0"
(0
为string
)NULL
FALSE
array()
(空array
)$var;
(声明的变量,但没有值)