内容参考自:掘金
CRMEB技术团队
1. 测试循环前数组是否为空?在项目的每一次提交之后,我都会进行大量代码审查,会经常看到一些重复出现的错误。以下这五个错误应该要及时纠正,这是纠正它们的方法。
$items = [];
// ...
if (count($items) > 0) {
foreach ($items as $item) { // process on $item ...
}
}
foreach 循环或数组函数(array_*)可以处理空数组。
- 不需要先进行测试
- 可以减少一层缩进
function foo(User $user) {
if ($user->isDisabled()) {
return;
} // ...
// long process
// ...
}
你可以通过提前返回,来减少缩进级别的极简代码!该函数的所有“有用”主体现在处于第一个缩进级别。
3. 多次调用
isset
方法
$a = null;
$b = null;
$c = null;
// ...
if (!isset($a) || !isset($b) || !isset($c)) {
throw new Exception("undefined variable");
}
// or
if (isset($a) && isset($b) && isset($c) {
// process with $a, $b et $c
}
// or
$items = [];
//...
if (isset($items['user']) && isset($items['user']['id']) {
// process with $items['user']['id']
}
我们经常需要检查是否已定义变量(而不是
null
)。在PHP中,我们可以使用isset函数来做到这一点。而且该函数一次可以接受多个参数!
4.
echo
方法和
sprintf
结合使用
$name = "John Doe";echo sprintf('Bonjour %s', $name);
除了结合
echo
和
sprintf
,我们可以简单地使用
printf
方法。
$name = "John Doe";printf('Bonjour %s', $name);
5. 通过组合两种方法检查数组中键的存在
$items = [
'one_key' => 'John',
'search_key' => 'Jane',
];
if (in_array('search_key', array_keys($items))) {
// process
}
最后一个错误我看到的往往是联合使用
in_array
和
array_keys
。所有这些都可以使用
array_key_exists
替换。
$items = [ 'one_key' => 'John', 'search_key' => 'Jane',];if (array_key_exists('search_key', $items)) { // process}
我们还可以使用isset来检查值是否是
null
。
if (isset($items['search_key'])) {
// process
}
干货 | 10个最好用的PHP框架,请收好~
2020-09-11
php如何实现网站的图片压缩
2020-09-10
20个PHP最经典算法请了解一下
2020-09-10
Laravel之QueryList的基本使用
2020-09-06
在 PHP 7 中不要做的 10 件事
2020-09-04
END
如果你觉得文章不错 可以扫码关注 我们的公众号哦~ 带你阅读更多优秀文章~ 分享-点赞-在看 可三连戳~ “在看”吗?在看就点一下吧