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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
php 页面执行时间计算代码
Dec 04 PHP
php cache类代码(php数据缓存类)
Apr 15 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
Codeigniter注册登录代码示例
Jun 12 PHP
Eclipse的PHP插件PHPEclipse安装和使用
Jul 20 PHP
jQuery+php简单实现全选删除的方法
Nov 28 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
laravel 创建命令行命令的图文教程
Oct 23 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执行速率优化技巧小结
2008/03/15 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
python字符串排序方法
2014/08/29 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
海量信息软件测试笔试题
2015/08/08 面试题
霸王洗发水广告词
2014/03/14 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
大学生助学金感谢信
2015/01/21 职场文书
员工离职感谢信
2015/01/22 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
python中数组和列表的简单实例
2022/03/25 Python