【原】PHP应该这么用才对!
in 随笔 with 1 comment

【原】PHP应该这么用才对!

in 随笔 with 1 comment

众人拾柴火焰高。 --谚语

开始之前,我们得明确一个事情,PHP的系统函数运行效率要比自己写的自定义函数的效率要高。

函数json_decode

写API的时候这个函数使用概率超级高,不过用不好,就会产生悲剧。。。注意它还有第二个参数。

<?php
json_decode($jsonStr, true);

函数foreach

这是一个遍历数组的函数使用的频率可以说90%以上。那么这样一个函数该怎么用呢?看下面两段代码,作用都是将数组中每个值分别加一,那么这样的两种处理方式哪个好呢?我的建议是,如果$arr被foreach处理后得到的新的$arr就是你最后想要的结果,那么建议用第二种,因为代码显得更加精简。反之,如果你处理后的$arr并不是最后的结果,还需要进行处理,建议用第一种,原因也很容易发现,只要你var_dump($arr);比较下两种方式得到的结果,就一目了然!

<?php
foreach( $arr as $key => $value ){
    $arr[$key] = $value + 1; 
}

foreach( $arr as &$value ){
    $value = $value + 1;
}

函数array_column

提取二维数组中的指定字段,组成一个新的一维数组。巨好用!

<?php
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);
 
$first_names = array_column($records, 'first_name');
print_r($first_names);

//输出
Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

函数array_intersect_assoc

该函数是比较数组的区别的,键和值都比较,但是让人郁闷的是,在遇到数据类型不一致的情况的时候,它并没有认为这两个值不一样,而是将两边的值强制转换成字符串去比较。。。

函数shuffle、array_push

这两个函数的返回值并不是修改后的数组。看清楚喽!!!

函数trim、rtrim、ltrim

用于去除字符串两头的字符的,注意是字符!!

<?php
$str = "Ab123456ABC";
$newStr = trim($str,'ABC');
echo $str;
//输出的结果是b123456

最后说两句,像这样的细节还是有很多的,平常没有细心的收集下来真是太可惜了,有时候这些东西,不知道还真是会出现很多让人无语的错误

Comments are closed.
  1. 老猫

    感谢分享,有些细节还真是没注意到。
    一个问题,