Pet*_*ter 5 php arrays compare
有没有一种简短的方法来做到这一点?
if ((isset($a['key']) && ($a['key'] == 'value')) {
echo 'equal';
// more code
}
else {
echo 'not equal';
// more code
}
Run Code Online (Sandbox Code Playgroud)
我需要在可能存在或不存在的数组上测试大量值。感觉这个方法太啰嗦了。
我可以删除isset()通知并将其静音......但我觉得很脏。
编辑:
回答 Jack 的问题:“您能举例说明如何测试数组中的大量值吗?”
例子:
if (isset($_GET['action']) && $_GET['action'] == 'view') {
//code
}
if (isset($_GET['filter']) && $_GET['filter'] == 'name') {
//code
}
if (isset($_GET['sort']) && $_GET['sort'] == 'up') {
//code
}
if (isset($_GET['tag']) && $_GET['tag'] == 'sometag') {
//code
}
etc...
Run Code Online (Sandbox Code Playgroud)
对于任何仍在偶然发现这个问题的人......
您可以使用PHP 的合并运算符:
if (($a['key'] ?? '') === 'value') {
echo 'equal';
// more code
}
else {
echo 'not equal';
// more code
}
Run Code Online (Sandbox Code Playgroud)
请参阅这个问题:Using PHP's null Coalescing Operator on an array
我不喜欢回答我自己的问题,但我觉得进行这种检查的最好、最干净的方法是编写一个“辅助函数”,例如:
function iskeyval(&$a, $k, $v) {
return isset($a['key']) && ($a['key'] == 'value');
}
Run Code Online (Sandbox Code Playgroud)
进而:
if (iskeyval($a, 'key', 'value')) {
...
}
else {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |