Some PHP Coding Tips「2015年05月25日更新」

1、使用list来实现一次获取explode后的特定段值:

<?php
list( , $mid) = explode(';', 'aa;bb;cc');
echo $mid; //输出 bb

2、注意 == 、switch、in_array 的松比较 (loose comparision)

例如下边的例子中,如果 $name 值为 0,那么它会满足任何一条 case。

switch ($name) {
    case "danny":
        ...
        break;
    case "eve":
        ...
        break;
}

解决方法:在 switch 之前,把变量类型转换成所期望的类型。 而 in_array 提供了第三个参数,如果第三个参数的值为 TRUE 则 in_array() 函数还会检查变量的类型是否相同。(参考:https://php.net/manual/zh/function.in-array.php

switch (strval($name)) {
    case "danny":
        ...
        break;
    case "eve":
        ...
        break;
}

3、用 switch 来改写 if else

例如:

if($a) {
} else if ($b) {
} else if ($c || $d) {
}

可以简单改写为更清晰的:

switch (TRUE) {
    case $a:
        break;
    case $b:
        break;
    case $c:
    case $d:
        break;
}

4、不用第三变量交换俩个变量的值

list($a, $b) = array($b, $a);

5、使用 array_map 遍历数组

在从数据库取回记录后,经常要 foreach 去取其中一个字段,这时就可以使用 array_map 来简化代码。

$uids = array_map( function($user){ return $user['id']; } , $users );

6、sleep 的参数不能是浮点数

sleep(0.25) 会被转化为 sleep(0),可以使用 sleep('250000') 来替代。

参考

  1. http://www.laruence.com/2011/03/24/858.html
  2. http://get.jobdeer.com/75.card
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值