这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);

这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!除了结合echo和sprintf,我们可以简单地使用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_array和array_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编程一定要改掉的5个不良习惯相关推荐

  1. 要写脚本,编程不好不要紧--浅谈CTF中脚本的编写方法

    1. 脚本在CTF比赛中的作用 CTF夺旗赛中往往分为杂项(MISC).密码(CRYPTO).WEB.逆向(REVERSE)和PWN. 在目前的比赛中,各种工具起到的作用在不断下降,一击必杀拿到fla ...

  2. 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽

    最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...

  3. Python中的匿名函数和函数式编程

    Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...

  4. java中no1_【Java】-- 网络编程のNo.1

    在现有的网络中,网络通讯的方式主要有两种: TCP(传输控制协议)方式 UDP(用户数据报协议)方式 在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后 ...

  5. 这5个PHP编程中的不良习惯,一定要改掉!

    在项目的每一次提交之后,我都会进行大量代码审查,会经常看到一些重复出现的错误.以下这五个错误应该要及时纠正,这是纠正它们的方法. 这5个PHP编程中的不良习惯,一定要改掉 PHP世界上最好的语言! 测 ...

  6. Window10中Dev-C++ 使用EasyX绘图库编程入门

    Window10中Dev-C++ 使用EasyX绘图库编程入门 EasyX是针对C++的图形库,可以帮助C/C++初学者快速上手图形和游戏编程.主要支持支持 VC6.0 ~ VC2022,若想在Dev ...

  7. 我们经常会用遇到一些文件需要网签,如何在word中制作手写签名?

    我们经常会用遇到一些文件需要网签,如何在word中制作手写签名? 目录 我们经常会用遇到一些文件需要网签,如何在word中制作手写签名? 1.在纸上写手好签名,用手机拍照上传至电脑上 2.打开word ...

  8. php shell脚本怎么写,Shell脚本编程入门

    一.什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do tou ...

  9. 创建模板_UG中如何创建属于自己的编程模板界面?

    点击关注 不迷路 ◆UG12如何实现多窗口显示部件 ◆[回转]命令 ◆实体建模工具拉伸 ◆UG12如何提醒自动保存时间 ◆UG12如何对实体产品剖视 先给大家出一道感性的推理题: 从前,有一个被巫师施 ...

最新文章

  1. 用python下载文件的若干种方法汇总
  2. android splash白屏_使用react-native-splash-screen解决应用启动白屏问题
  3. 检测移动端内存敏感数据方法(安卓)
  4. 树莓派3B用Ubuntu MATE安装ros
  5. 【一雪前耻!】两种方法判断大小端模式
  6. QgridLayout例子,在qlayout添加button实例(添加窗体过程类似)
  7. 商业计划书最好就是十页篇幅
  8. HTML Img Compression(压缩)
  9. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(6) - 移位与循环移位指令
  10. python模块datetime_Python模块学习 datetime介绍
  11. paddle中import onnxruntime报错缺失Microsoft Visual C++ Redistributable for Visual Studio 2019 not install
  12. 新建Scrapy项目
  13. PHP实现完全二叉树
  14. JavaScript实现map
  15. Qt5.9.1安装包下载
  16. java saxreader,java – 如何使用dom4j SAXReader脱机?
  17. linux fdisk指定ext4,如何在Linux中创建新的Ext4文件系统(分区)
  18. java 因数分解_java因数分解实例源码
  19. python Numpy中的array函数讲解及各参数含义
  20. Android 桌面小部件的背景透明度及颜色的动态实现

热门文章

  1. 【Python】可遍历的数据类型有哪些?
  2. [云炬学英语]每日一句2020.8.26
  3. [云炬ThinkPython阅读笔记]3.3 构建
  4. 科大星云诗社动态20210811
  5. [MATLAB调试笔记]phase space plot
  6. 第05课:神经网络基础知识
  7. Go进阶(3): 函数+闭包+defer
  8. 小波的秘密8_图像处理应用:图像降噪
  9. Delphi编程技术简介
  10. 改变TPageControl的活动标签颜色