这5个PHP编程中的不良习惯,一定要改掉 PHP世界上最好的语言!
测试循环前数组是否为空?
1
2
3
4
5
|
$items = [];
// ...
if ( count ( $items ) > 0) {
foreach ( $items as $item ) { // process on $item ...
}}
|
foreach
循环或数组函数(array_*)
可以处理空数组。
- 不需要先进行测试
- 可以减少一层缩进
1
2
3
4
|
$items = [];
// ...
foreach ( $items as $item ) { // process on $item ...
}
|
将方法的所有内容封装在if语句中
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function foo(User $user ) {
if (! $user ->isDisafunction foo(User $user ) {
if (! $user ->isDisabled()) {
// ...
// long process
// ...
}
}bled()) {
// ...
// long process
// ...
}
}
|
这不是特定于PHP的,但我经常看到它。你可以通过提前返回,来减少缩进级别的极简代码! 该函数的所有“有用”主体现在处于第一个缩进级别
1
2
3
4
5
6
7
|
function foo(User $user ) {
if ( $user ->isDisabled()) {
return ;
} // ...
// long process
// ...
}
|
多次调用isset方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$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函数来做到这一点。而且该函数一次可以接受多个参数!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
$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结合使用
1
2
|
$name = "John Doe" ;
echo sprintf( 'Bonjour %s' , $name );
|
这段代码可能在微笑,但是我碰巧写了一段时间。而且我仍然看到很多!除了结合echo
和sprintf
,我们可以简单地使用printf
方法。
1
2
|
$name = "John Doe" ;
printf( 'Bonjour %s' , $name );
|
通过组合两种方法检查数组中键的存在
1
2
3
4
5
6
|
$items = [
'one_key' => 'John' ,
'search_key' => 'Jane' ,
]; if (in_array( 'search_key' , array_keys ( $items ))) {
// process
}
|
最后一个错误我看到的往往是联合使用in_array
和array_keys
。所有这些都可以使用array_key_exists替换。
1
2
3
4
5
6
|
$items = [
'one_key' => 'John' ,
'search_key' => 'Jane' ,
]; if ( array_key_exists ( 'search_key' , $items )) {
// process
}
|
我们还可以使用isset来检查值是否是null。
1
2
3
|
if (isset( $items [ 'search_key' ])) {
// process
}
|
以上就是PHP编程一定要改掉的5个不良习惯的详细内容,更多关于php 不良习惯的资料请关注服务器之家其它相关文章!
原文链接:https://juejin.im/post/6872242391140155400?utm_source=tuicool&utm_medium=referral