这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 不良习惯的资料请关注站长技术其它相关文章!
本文是对之前开发中遇到的问题的一个总结,文章其实早就写好,但是觉得自己写得...
一、什么是html HTML(HyperText Markup Language):超文本标记语言,一种纯文...
本文实例为大家分享了jsp实现登录验证的过滤器,供大家参考,具体内容如下 1.新...
1、设计思路 (1)设计一个TabNavigator,其中包含两个Tabs; (2)设置Tabs样式...
现在很多web项目都能用到登录界面,本文介绍一下JSP制作简单登录界面,分享给大...
正则表达式: 官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定...
一、什么是Ajax Ajax英文全称为“ Asynchr JavsScript and XML”(异步的JavaScr...
文章目录 一、分块查找算法 二、实例实现分块查找算法 本系列文章通过 1000一篇...
idea 新建一个html 文件 把复制有行号的代码放进去 替换快捷键 command + R 或 c...
我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支...