php中一定要写 吗,PHP编程一定要改掉的5个不良习惯
这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个不良习惯相关推荐
- 要写脚本,编程不好不要紧--浅谈CTF中脚本的编写方法
1. 脚本在CTF比赛中的作用 CTF夺旗赛中往往分为杂项(MISC).密码(CRYPTO).WEB.逆向(REVERSE)和PWN. 在目前的比赛中,各种工具起到的作用在不断下降,一击必杀拿到fla ...
- 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽
最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...
- Python中的匿名函数和函数式编程
Python中的匿名函数和函数式编程 文章目录 Python中的匿名函数和函数式编程 一.匿名函数 匿名函数的格式: 二.函数式编程 map() filter() reduce() 区别 三.'三目运 ...
- java中no1_【Java】-- 网络编程のNo.1
在现有的网络中,网络通讯的方式主要有两种: TCP(传输控制协议)方式 UDP(用户数据报协议)方式 在网络通讯中,TCP方式就类似于拨打电话,使用该种方式进行网络通讯时,需要建立专门的虚拟连接,然后 ...
- 这5个PHP编程中的不良习惯,一定要改掉!
在项目的每一次提交之后,我都会进行大量代码审查,会经常看到一些重复出现的错误.以下这五个错误应该要及时纠正,这是纠正它们的方法. 这5个PHP编程中的不良习惯,一定要改掉 PHP世界上最好的语言! 测 ...
- Window10中Dev-C++ 使用EasyX绘图库编程入门
Window10中Dev-C++ 使用EasyX绘图库编程入门 EasyX是针对C++的图形库,可以帮助C/C++初学者快速上手图形和游戏编程.主要支持支持 VC6.0 ~ VC2022,若想在Dev ...
- 我们经常会用遇到一些文件需要网签,如何在word中制作手写签名?
我们经常会用遇到一些文件需要网签,如何在word中制作手写签名? 目录 我们经常会用遇到一些文件需要网签,如何在word中制作手写签名? 1.在纸上写手好签名,用手机拍照上传至电脑上 2.打开word ...
- php shell脚本怎么写,Shell脚本编程入门
一.什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do tou ...
- 创建模板_UG中如何创建属于自己的编程模板界面?
点击关注 不迷路 ◆UG12如何实现多窗口显示部件 ◆[回转]命令 ◆实体建模工具拉伸 ◆UG12如何提醒自动保存时间 ◆UG12如何对实体产品剖视 先给大家出一道感性的推理题: 从前,有一个被巫师施 ...
最新文章
- 用python下载文件的若干种方法汇总
- android splash白屏_使用react-native-splash-screen解决应用启动白屏问题
- 检测移动端内存敏感数据方法(安卓)
- 树莓派3B用Ubuntu MATE安装ros
- 【一雪前耻!】两种方法判断大小端模式
- QgridLayout例子,在qlayout添加button实例(添加窗体过程类似)
- 商业计划书最好就是十页篇幅
- HTML Img Compression(压缩)
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(6) - 移位与循环移位指令
- python模块datetime_Python模块学习 datetime介绍
- paddle中import onnxruntime报错缺失Microsoft Visual C++ Redistributable for Visual Studio 2019 not install
- 新建Scrapy项目
- PHP实现完全二叉树
- JavaScript实现map
- Qt5.9.1安装包下载
- java saxreader,java – 如何使用dom4j SAXReader脱机?
- linux fdisk指定ext4,如何在Linux中创建新的Ext4文件系统(分区)
- java 因数分解_java因数分解实例源码
- python Numpy中的array函数讲解及各参数含义
- Android 桌面小部件的背景透明度及颜色的动态实现