服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - PHP编程一定要改掉的5个不良习惯

PHP编程一定要改掉的5个不良习惯

2021-10-27 13:32CRMEB技术团队 PHP教程

在项目的每一次提交之后,我都会进行大量代码审查,会经常看到一些重复出现的错误。以下这五个错误应该要及时纠正,这是纠正它们的方法。

这5个PHP编程中的不良习惯,一定要改掉 PHP世界上最好的语言!

测试循环前数组是否为空?

?
1
2
3
4
5
$items = [];
// ...
if (count($items) > 0) {
 foreach ($items as $item) {  // process on $item ...
 }}

foreach循环或数组函数(array_*)可以处理空数组。

  • 不需要先进行测试
  • 可以减少一层缩进
?
1
2
3
4
$items = [];
// ...
foreach ($items as $item) { // process on $item ...
}

将方法的所有内容封装在if语句中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function foo(User $user) {
 if (!$user->isDisafunction foo(User $user) {
 if (!$user->isDisabled()) {
  // ...
  // long process
  // ...
 }
}bled()) {
  // ...
  // long process
  // ...
 }
}

这不是特定于PHP的,但我经常看到它。你可以通过提前返回,来减少缩进级别的极简代码! 该函数的所有“有用”主体现在处于第一个缩进级别

?
1
2
3
4
5
6
7
function foo(User $user) {
 if ($user->isDisabled()) {
  return;
 } // ...
 // long process
 // ...
}

多次调用isset方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$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函数来做到这一点。而且该函数一次可以接受多个参数!

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$a = null;
$b = null;
$c = null;
// ...
 
if (!isset($a, $b, $c)) {
 throw new Exception("undefined variable");
}
 
// or
 
if (isset($a, $b, $c)) {
 // process with $a, $b et $c
}
 
// or
 
$items = [];
//...
if (isset($items['user'], $items['user']['id'])) {
 // process with $items['user']['id']
}

echo方法和sprintf结合使用

?
1
2
$name = "John Doe";
echo sprintf('Bonjour %s', $name);

这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!除了结合echosprintf,我们可以简单地使用printf方法。

?
1
2
$name = "John Doe";
printf('Bonjour %s', $name);

通过组合两种方法检查数组中键的存在

?
1
2
3
4
5
6
$items = [
 'one_key' => 'John',
 'search_key' => 'Jane',
];if (in_array('search_key', array_keys($items))) {
 // process
}

最后一个错误我看到的往往是联合使用in_arrayarray_keys。所有这些都可以使用array_key_exists替换。

?
1
2
3
4
5
6
$items = [
 'one_key' => 'John',
 'search_key' => 'Jane',
];if (array_key_exists('search_key', $items)) {
 // process
}

我们还可以使用isset来检查值是否是null。

?
1
2
3
if (isset($items['search_key'])) {
 // process
}

以上就是PHP编程一定要改掉的5个不良习惯的详细内容,更多关于php 不良习惯的资料请关注服务器之家其它相关文章!

原文链接:https://juejin.im/post/6872242391140155400?utm_source=tuicool&utm_medium=referral

延伸 · 阅读

精彩推荐
  • PHP教程PHP导入导出Excel代码

    PHP导入导出Excel代码

    本文给大家分享的是PHP将Excel导入数据库以及数据库数据导出至Excel的方法和示例,有需要的小伙伴可以参考下...

    PHP教程网2752020-11-01
  • PHP教程Laravel关系模型指定条件查询方法

    Laravel关系模型指定条件查询方法

    今天小编就为大家分享一篇Laravel关系模型指定条件查询方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    SHUIPING_YANG8882021-08-29
  • PHP教程laravel创建类似ThinPHP中functions.php的全局函数

    laravel创建类似ThinPHP中functions.php的全局函数

    最近在学习如何使用Laravel写东西,因为框架本身的设计理念的不同,刚从ThinPHP3切换到Laravel5,感觉还是很怪的,各种不习惯,但是一旦写过一些代码,发...

    PHP教程网5942021-03-30
  • PHP教程php实现商城购物车的思路和源码分析

    php实现商城购物车的思路和源码分析

    这篇文章主要介绍了php实现商城购物车的思路和源码分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋...

    浅墨若寒6572021-10-20
  • PHP教程详解thinkphp中的volist标签

    详解thinkphp中的volist标签

    本文通过实例案例给大家介绍了thinkphp中的volist标签,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下吧 ...

    TBHacker3982019-10-25
  • PHP教程php PDO属性设置与操作方法分析

    php PDO属性设置与操作方法分析

    这篇文章主要介绍了php PDO属性设置与操作方法,结合实例形式分析了php pdo常见属性功能及相关的设置、获取操作技巧,需要的朋友可以参考下...

    菜鸟学编程$5652019-07-08
  • PHP教程解析PHP正则提取或替换img标记属性

    解析PHP正则提取或替换img标记属性

    本篇文章是对PHP正则提取或替换img标记属性进行了详细的分析介绍,需要的朋友参考下 ...

    PHP教程网2602020-05-01
  • PHP教程PHP创建PowerPoint2007文档的方法

    PHP创建PowerPoint2007文档的方法

    这篇文章主要介绍了PHP创建PowerPoint2007文档的方法,通过PHP第三方插件PHPPowerPoint类库实现ppt文件的生成功能,非常具有实用价值,需要的朋友可以参考下...

    cometlj2522020-12-07