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 相关文章推荐
5.PHP的其他功能
Oct 09 PHP
初探PHP5
Oct 09 PHP
php学习之运算符相关概念
Jun 09 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
Jun 19 PHP
PHP实现的随机IP函数【国内IP段】
Jul 20 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 PHP
laravel请求参数校验方法
Oct 10 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上传
2011/07/14 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
js实现在字符串中提取数字
2013/11/05 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
webpack构建换肤功能的思路详解
2017/11/27 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
Python 实现简单的电话本功能
2015/08/09 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
Python输出\u编码将其转换成中文的实例
2018/12/15 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
测绘工程个人的自我评价
2013/11/10 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
初级会计求职信范文
2014/02/15 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
机电专业求职信
2014/06/14 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
学习保证书
2015/01/17 职场文书
Python实现简单的猜单词
2021/06/15 Python