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


Posted in PHP onSeptember 18, 2020

这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 不良习惯的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
PHP简单读取xml文件的方法示例
Apr 20 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
May 26 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
php对微信支付回调处理的方法
Aug 23 PHP
PHP实现基于3DES算法加密解密字符串示例
Aug 24 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
Sep 17 #PHP
深入浅析安装PhpStorm并激活的步骤详解
Sep 17 #PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
Sep 17 #PHP
PHPstorm启用自动换行的方法详解(IDE)
Sep 17 #PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 #PHP
phpstorm激活码2020附使用详细教程
Sep 25 #PHP
phpStorm2020 注册码
Sep 17 #PHP
You might like
在PHP中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
django 多数据库配置教程
2018/05/30 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
学python安装的软件总结
2019/10/12 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
PyQt 如何创建自定义QWidget
2021/03/24 Python
高级销售求职信
2014/02/21 职场文书
党员活动日总结
2014/05/05 职场文书
授权委托书格式范文
2014/08/02 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
入党转正介绍人意见
2015/06/03 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Python编写冷笑话生成器
2022/04/20 Python