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

 更新时间:2020年09月18日 09:18:00   作者:CRMEB技术团队  
在项目的每一次提交之后,我都会进行大量代码审查,会经常看到一些重复出现的错误。以下这五个错误应该要及时纠正,这是纠正它们的方法。

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

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

$items = [];
// ...
if (count($items) > 0) {
 foreach ($items as $item) {  // process on $item ...
 }}

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

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

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

function foo(User $user) {
 if (!$user->isDisafunction foo(User $user) {
 if (!$user->isDisabled()) {
  // ...
  // long process
  // ...
 }
}bled()) {
  // ...
  // long process
  // ...
 }
}

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

function foo(User $user) {
 if ($user->isDisabled()) {
  return;
 } // ...
 // long process
 // ...
}

多次调用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函数来做到这一点。而且该函数一次可以接受多个参数!

$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结合使用

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

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

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

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

$items = [
 'one_key' => 'John',
 'search_key' => 'Jane',
];if (in_array('search_key', array_keys($items))) {
 // process
}

最后一个错误我看到的往往是联合使用in_arrayarray_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
}

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

相关文章

  • Yii2中简单的场景使用介绍

    Yii2中简单的场景使用介绍

    这篇文章主要给大家介绍了关于Yii2中简单的场景使用的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来跟着小编一起学习学习吧。
    2017-06-06
  • PHP编码规范的深入探讨

    PHP编码规范的深入探讨

    本篇文章是对PHP编码规范进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 利用PHP实现开心消消乐的算法示例

    利用PHP实现开心消消乐的算法示例

    开心消消乐应该对大家来说都不陌生吧,下面这篇文章主要给大家介绍了关于如何利用PHP实现开心消消乐算法的相关资料,文中将需求和示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • PHP实现异步定时多任务消息推送

    PHP实现异步定时多任务消息推送

    在 PHP 中实现异步定时多任务消息推送的方式有多种,其中一种常用的方式是使用异步任务队列,这篇文章主要介绍了这一方法的具体实现,需要的可以参考一下
    2023-04-04
  • PHP中怎样防止SQL注入分析

    PHP中怎样防止SQL注入分析

    这篇文章主要介绍了PHP中怎样防止SQL注入分析,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • PHP获取文件夹内文件数的方法

    PHP获取文件夹内文件数的方法

    这篇文章主要介绍了PHP获取文件夹内文件数的方法,涉及php操作文件夹及文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

    PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

    承接上文的PHP 杂谈《重构-改善既有代码的设计》之 重新组织你的函数继续重构方面的内容
    2012-04-04
  • PHP 存储文本换行实现方法

    PHP 存储文本换行实现方法

    在文本存储时使用\n如果发现没有效果, 这时可以使用\r\n就可以了,希望对有需要的朋友有所帮助。
    2010-01-01
  • php Ubb代码编辑器函数代码

    php Ubb代码编辑器函数代码

    php Ubb代码编辑器函数代码,需要php中实现UBB解析的朋友可以参考下
    2012-07-07
  • php安装grpc扩展的具体步骤

    php安装grpc扩展的具体步骤

    在本篇文章里小编给大家整理的是一篇关于php安装grpc扩展的具体步骤,有需要的朋友们可以跟着学习参考下。
    2021-07-07

最新评论