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下过滤HTML代码的函数
Dec 10 PHP
PHP删除非空目录的函数代码小结
Feb 28 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
php版微信发红包接口用法示例
Sep 23 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
php文件管理基本功能简单操作
Jan 16 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
php提供实现反射的方法和实例代码
Sep 17 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
js中遍历Map对象的方法
2016/07/27 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
vue中英文切换实例代码
2020/01/21 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
详细解析Python当中的数据类型和变量
2015/04/25 Python
使用Python编写一个最基础的代码解释器的要点解析
2016/07/12 Python
Python实现的爬虫功能代码
2017/06/24 Python
python实现单向链表详解
2018/02/08 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
python设置随机种子实例讲解
2019/09/12 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
企业总经理任命书
2014/06/05 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server