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

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

【相关学习推荐:php图文教程

这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");
}// orif (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");
}// orif (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}复制代码

感谢您的阅读,如果对您有帮助,欢迎关注"CRMEB"掘金号。码云上有我们开源的商城项目,知识付费项目,均是基于PHP开发,学习研究欢迎使用,关注我们保持联系!

关于一定要改掉 这5个PHP编程中的不良习惯!的文章就分享到这,如果对你有帮助欢迎继续关注我们哦

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

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

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

相关推荐

  • PHP中的视频转码和转换技术指南。

    PHP是一种常用的服务器端编程语言。在开发网站和应用程序时,有时需要对视频进行转码或转换,以便于在不同设备和平台上播放。本文将介绍PHP中的几种视频转码和转换技术,以供参考。一、FFmpegFFmpeg是一个开源的视…

    2023年5月30日
    017
  • 如何调整PHP商城开发中的数据库连接?

    随着互联网和电子商务的发展,越来越多的企业和开发者开始开发在线商城。而PHP作为一种广泛应用于互联网领域的编程语言,也被广泛运用于商城的开发中。在开发PHP商城时,数据库连接是一个非常重要的环节,它负责将…

    2023年5月19日
    01
  • php实现斗鱼弹幕,一起来欣赏弹幕吧~

    斗鱼弹幕 PHP版本github地址:https://github.com/wjhtime之前写过python获取斗鱼的弹幕 传送门,突发奇想,想要用php来实现。弹幕获取实现起来很简单,用swoole很容易做到了,后期也做了一些命令行格式的优化使用…

    2022年6月23日
    0151
  • 如何进行PHP的安全管理?

    PHP作为一种开源的编程语言,广泛应用于Web开发领域。然而,随着网络安全威胁不断增加,对PHP应用的安全管理也变得越来越重要。在这篇文章中,我们将探讨如何进行PHP的安全管理,以保障应用的安全性。优化代码在编…

    2023年5月17日
    04
  • 在PHP中实现微信支付的发起和查询

    随着微信支付的普及,越来越多的网站需要集成微信支付功能。在这篇文章中,我们将讨论如何在PHP中实现微信支付的发起和查询。调用统一下单API在PHP中发起微信支付,第一步是调用微信支付的统一下单API来生成预支付…

    2023年5月18日
    09
  • PHP与jquery实时显示网站在线人数实例详解

    代码如下:我们在一些应用中需要动态展示数据,比如当前在线人数,当前交易总额,当前汇率等等,前端页面需要实时刷新获取最新数据。本文将结合实例给大家介绍使用jQuery和PHP来实现动态数字展示效果。 本例假设要…

    2017年9月30日
    0296
  • 如何使用PHP和Docker构建可部署的应用。

    随着互联网的快速发展,越来越多的应用程序需要基于云服务器进行部署,而使用 Docker 容器技术对于实现这一目标来说是一个很好的选择。在本篇文章中,我们将介绍如何使用 PHP 和 Docker 构建可部署的应用程序,从而…

    2023年5月30日
    04
  • 关于PHP CURL上传二进制流图片

    前言项目中模块数据由PHP爬虫进行更新,当检测到有新图片时需要上传到跨地区的CDN回源服务器(静态资源服务器),服务器负责人只提供一个上传API解决方法1.将图片保存到本地再使用PHP CURL + new \\CURLFile($path)上…

    2022年6月27日
    0354

联系我们

QQ:951076433

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