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基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
一个用php实现的获取URL信息的类
Jan 02 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
PHP中使用SimpleXML检查XML文件结构实例
Jan 07 PHP
php判断输入是否是纯数字,英文,汉字的方法
Mar 05 PHP
浅谈PHP中Stream(流)
Jun 08 PHP
PHP json_encode() 函数详解及中文乱码问题
Nov 05 PHP
详解PHP发送邮件知识点
May 06 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
Aug 17 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开发注意事项总结
2015/02/04 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
javascript如何写热点图
2015/12/08 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
js实现图片无缝循环轮播
2019/10/28 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
Python实现建立SSH连接的方法
2015/06/03 Python
python解决字符串倒序输出的问题
2018/06/25 Python
Python get获取页面cookie代码实例
2018/09/12 Python
python判断一个对象是否可迭代的例子
2019/07/22 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
财务管理专业自荐书
2014/09/02 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
运输公司工作总结
2015/08/11 职场文书
2016年大学生暑假爱心支教活动策划书
2015/11/26 职场文书
幼儿园2016年圣诞活动总结
2016/03/31 职场文书
python实现图片批量压缩
2021/04/24 Python
浅谈怎么给Python添加类型标注
2021/06/08 Python