【相关学习推荐:php图文教程】
这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); }// orif (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); }// orif (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}复制代码
感谢您的阅读,如果对您有帮助,欢迎关注CRMEB掘金号。码云上有我们开源的商城项目,知识付费项目,均是基于PHP开发,学习研究欢迎使用,关注我们保持联系!
相关学习推荐:php编程(视频)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。