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 保留小数点
Apr 21 PHP
php下将XML转换为数组
Jan 01 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
你应该知道PHP浮点数知识
May 13 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
php实现JWT验证的实例教程
Nov 26 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解析html的实现代码
2011/08/08 PHP
重新认识php array_merge函数
2014/08/31 PHP
背景音乐每次刷新都可以自动更换
2007/02/01 Javascript
Javascript之文件操作
2007/03/07 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
Fixie.js 自动填充内容的插件
2012/06/28 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
Vue.js 图标选择组件实践详解
2018/12/03 Javascript
python实现的简单抽奖系统实例
2015/05/22 Python
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
python3.x实现发送邮件功能
2018/05/22 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
正则给header的冒号两边参数添加单引号(Python请求用)
2019/08/09 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
平民服装店创业计划书
2014/01/17 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
银行简历自我评价
2014/02/11 职场文书
财务检查整改报告
2014/11/06 职场文书
2015大一新生军训感言
2015/08/01 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技