你可能要纠正这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->isDisabled()) {
        // ...
        // long process
        // ...
    }
}

这不是 PHP 特有的情况,不过我经常碰到此类情况。你可以通过提前返回来减少缩进。

所有主要方法处于第一个缩进级别

function foo(User $user) {
    if ($user->isDisabled()) {
        return;
    }

    // ...
    // 其他代码
    // ...
}

三:多次调用 isset 方法

你可能遇到以下情况:

$a = null;
$b = null;
$c = null;
// ...

if (!isset($a) || !isset($b) || !isset($c)) {
    throw new Exception("undefined variable");
}

// 或者

if (isset($a) && isset($b) && isset($c) {
    // process with $a, $b et $c
}

// 或者

$items = [];
//...
if (isset($items['user']) && isset($items['user']['id']) {
    // process with $items['user']['id']
}

我们经常需要检查变量是否已定义,php 提供了 isset 函数可以用于检测该变量,而且该函数可以一次接受多个参数,所以一下代码可能更好:

$a = null;
$b = null;
$c = null;
// ...

if (!isset($a, $b, $c)) {
    throw new Exception("undefined variable");
}

// 或者

if (isset($a, $b, $c)) {
    // process with $a, $b et $c
}

// 或者

$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
}

原文地址:https://dev.to/klnjmm/5-bad-habits-to-lose-in-php-2j98

译文地址:https://learnku.com/php/t/49583

关于你可能要纠正这5个PHP编码小陋习!的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/41186.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
php学习php学习订阅用户
上一篇 2022年6月20日 22:51
下一篇 2022年6月20日 22:51

相关推荐

  • PHP商城开发中的页面性能优化

    随着电商市场的逐步扩大,越来越多的企业选择建立自己的电商平台来开展业务。而在建立电商平台的过程中,开发人员需要考虑的不仅是平台的功能,还需要考虑页面的性能优化问题,以提高用户体验和网站的排名。本文将…

    2023年5月19日
    01
  • PHP与数据集市的集成。

    随着数据分析在企业中的重要性越来越受到越来越多的关注,数据集市(DW)的建设也逐渐成为了企业数据管理的重要组成部分。而PHP作为一种广泛应用于Web开发的编程语言,其与数据集市的集成也变得越来越重要。数据集市…

    2023年5月21日
    00
  • PHP商城中的积分商城设计与实现。

    随着电商平台逐渐成为人们购物的主要渠道,积分商城作为促销活动方式之一也逐渐流行起来。PHP商城作为一种电商平台,也需要在积分商城的设计方面予以考虑。本文将介绍PHP商城中积分商城的设计与实现。一、积分商城…

    2023年5月28日
    02
  • PHP中如何进行持续集成和持续交付?

    随着软件开发的快速发展,持续集成和持续交付已经成为现代软件开发中不可或缺的技术。作为一种流程和文化,持续集成和持续交付可以帮助开发团队更快、更高效地开发和部署软件,同时也可以保证软件的质量和稳定性。…

    2023年5月17日
    02
  • PHP中的区块链。

    随着区块链技术的不断发展和应用,它已经成为一个热门的话题,受到了广泛的关注。区块链技术不仅被应用在数字货币的交易中,还被应用在金融、医疗、物流等行业中。而在编程方面,区块链技术也有很多应用,其中PHP中…

    2023年5月30日
    00
  • 我的php学习第二十六天——PHP基础语法

    PHP基础语法 在PHP程序中,变量和常量是经常用到的 PHP是操作数据,数据在静态的时候是放到文件或者数据库中,当程序操作数据的时候,数据是以变量或者常量的形式存在于内存。 在真实的项目环境中,只有数据操作是…

    2017年5月3日 PHP自学教程
    0369
  • PHP中的数组操作指南。

    作为一种常用的编程语言,PHP 提供了多种数据类型和操作方式,其中数组是一种非常重要的数据类型。在 PHP 中,数组可以用来存储多个值,并能够进行多种操作和处理。本文将为大家介绍 PHP 中的数组操作指南,帮助大…

    2023年5月23日
    01
  • php如何使用Symfony6框架。

    Symfony6是一款流行的PHP框架,它提供了一种快速、安全和可靠的方式来建立Web应用程序。如果你是一名开发人员,你需要学会如何使用Symfony6框架。在本文中,我们将为您介绍Symfony6框架,并提供有关如何在PHP中使用…

    2023年6月3日
    02

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息