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中,文件上传
Dec 06 PHP
dedecms中显示数字验证码的修改方法
Mar 21 PHP
php将时间差转换为字符串提示
Sep 07 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
php管理nginx虚拟主机shell脚本实例
Nov 19 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
深入PHP数据加密详解
2013/06/18 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
Python pass 语句使用示例
2014/03/11 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
中学生家长评语大全
2014/04/16 职场文书
气象学专业个人求职信
2014/04/22 职场文书
关爱老人标语
2014/06/21 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
2015年安全生产责任书
2015/01/30 职场文书
毕业班工作总结
2015/08/10 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android