PHP 组合的简写 ??和?:运营商?

问题描述 投票:0回答:1

在 PHP 中是否有任何“漂亮”的速记可以使用?和 ?: 运算符在一起?

我经常检查一些东西是否存在数组键并在网络应用程序中“评估为真”,例如对于 id,比如

if ($foo['id']) {
    // ...
}

但这会导致从 PHP 8.x+ 开始的 PHP 通知。

我会写

if (isset($foo['id']) && $foo['id']) {
    // ...
}

但这使得代码如此不可读。

另一种选择是

if ($foo['id'] ?? NULL) {
    // ...
}

但这也是……残忍的。

尤其是在写像这样的东西时

echo 'Rsource foo '.(($foo['id'] ?? NULL) ? 'edit' : 'create');

有什么想法、建议吗?

php operator-keyword shorthand
1个回答
1
投票

数组键存在并“评估为真”

那是

empty
,或者更确切地说,
!empty

if (!empty($foo['id']))
© www.soinside.com 2019 - 2024. All rights reserved.