三元运算符的逻辑错误

发布于 2024-12-07 11:37:04 字数 454 浏览 5 评论 0原文

有人能解释一下为什么三元运算符返回第二个选项而不是第一个吗?

这是代码:

$token_sid =
    ($user->data['user_id'] == ANONYMOUS &&
     !empty($config['form_token_sid_guests'])) ? $user->session_id : '';

这是我实际测试的值

$user->data['user_id'] = 36412
ANONYMOUS = 1
$config['form_token_sid_guests'] = 0
$user->session_id = 4c148b664b7284ecb776c0a932ddf008

$token_sid = ''

知道为什么返回空值而不是用户会话 ID 吗?

Can somebody explain me why that ternary operetor return the second option instead of the first ?

This is the code :

$token_sid =
    ($user->data['user_id'] == ANONYMOUS &&
     !empty($config['form_token_sid_guests'])) ? $user->session_id : '';

And here are the values for my actual testing

$user->data['user_id'] = 36412
ANONYMOUS = 1
$config['form_token_sid_guests'] = 0
$user->session_id = 4c148b664b7284ecb776c0a932ddf008

$token_sid = ''

Any idea why that return the empty value instead of the user session id ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心旳酸楚 2024-12-14 11:37:04
$user->data['user_id'] = 36412

不等于

ANONYMOUS = 1

(36412 != 1)
因此,第一个“AND”条件失败,并且将评估您的 else“块”。

$user->data['user_id'] = 36412

is not equal to

ANONYMOUS = 1

(36412 != 1)
So the first "AND"-Condition failes and your else-"Block" will be evaluated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文