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函数
Oct 09 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
PHP 实用代码收集
Jan 22 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
Oct 13 PHP
php array_reverse 以相反的顺序返回数组实例代码
Apr 11 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
Apr 13 PHP
Thinkphp集成抖音SDK的实现方法
Apr 28 PHP
PHP 超级全局变量相关总结
Jun 30 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数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
php给图片加文字水印
2015/07/31 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
原生js实现类似fullpage的单页/全屏滚动
2017/01/22 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
vue自定义全局组件(自定义插件)的用法
2018/01/30 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
python杀死一个线程的方法
2015/09/06 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python3.6编写的单元测试示例
2019/08/17 Python
Python pip配置国内源的方法
2020/02/14 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
董事长职责范文
2013/11/08 职场文书
婚纱店策划方案
2014/05/22 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
高中信息技术教学反思
2016/02/16 职场文书
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
MySQL创建定时任务
2022/01/22 MySQL