PHP常用基础&&小技巧(二)

133 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第7天,点击查看活动详情

1.常用数组函数
array_count_values();//用于统计数组中所有值出现的次数。
array_map();//将用户自定义函数作用到给定数组的每个值上,返回新的值。
array_merge();//把一个或多个数组合并为一个数组。
array_pop();//删除数组中的最后一个元素(出栈)
array_push();//将一个或多个元素插入数组的末尾(入栈)。
array_values();//返回数组中所有的值。
compact();//创建一个包含变量名和它们的值的数组。
array_sum();//返回数组中所有值的和。
array_diff();//比较数组,返回两个数组的差集(只比较键值)。
array_rand();//从数组中随机选出一个或多个元素,返回键名。
2.常用判断是否为空函数
empty() 函数
empty() 函数用于检查一个变量是否为空。
empty() 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。
以下的变量会被认为是空的:
"" (空字符串)
0 (作为整数的0)
0.0 (作为浮点数的0)
"0" (作为字符串的0)
NULL
FALSE
array() (一个空数组)
$var; (一个声明了,但是没有值的变量)
实例
<?php
    $ivar1=0;
    $istr1='Runoob';
    if (empty($ivar1))
    {
        echo '$ivar1' . " 为空或为 0。" . PHP_EOL;
    }
    else
    {
        echo '$ivar1' . " 不为空或不为 0。" . PHP_EOL;
    }
    if (empty($istr1))
    {
        echo '$istr1' . " 为空或为 0。" . PHP_EOL;
    }
    else
    {
        echo '$istr1' . " 字符串不为空或不为0。" . PHP_EOL;
    }
?>
执行结果如下所示:
$ivar1 为空或为 0$istr1 字符串不为空或不为0is_null() 函数用于检测变量是否为 NULL
isset() 函数 检测变量是否已设置并且非 NULL
is_numeric() 函数用于检测变量是否为数字或数字字符串。
3.常用sql查询函数
基础的就是些聚合函数
max(最大值),min(最小值),avg(平均值),sum(求和),count(个数)
然后group by(分组),order by(排序),limit(分页),left join(连表)
FROM_UNIXTIME(click_time, '%Y-%m-%d') as cDate //时间戳转为年月日
ifnull(max(l.roleLevel),0) as roleLevel//如果为空就赋值为0
如果该字段为空则显示另一个值 case when
4.常用干货
1foreach效率更高,尽量用 foreach 代替 whilefor 循环

2、循环内部不要声明变量,尤其是对象这样的变量

3、循环条件中使用函数
在多重嵌套循环中,如有可能,应当将长的循环放在内层,短循环放在外层,从而减少 cpu 跨循环层的次数,优化程序性能

4、用单引号代替双引号引用字符串以实现 PHP 性能优化

5、用 i+=1 代替 i=i+1。符合 c/c++ 的习惯,效率还高

6、优化 Select SQL 语句,在可能的情况下尽量少的进行 Insert、Update 操作,达到 PHP 性能优化的目的

7、尽量的少进行文件操作,虽然 PHP 的文件操作效率也不低的

8、尽可能的使用 PHP 内部函数

9、在可以用 PHP 内部字符串操作函数的情况下,不要用正则表达式

10、在可以用 file_get_contents代替 file、fopen、feof、fgets

等系列方法的情况下,尽量用file_get_contents,因为它的效率高得多。但是要注意 file_get_contents 在打开一个 URL 文件时候的PHP 版本问题

11、试着喜欢使用三元运算符(?:)

12、使用选择分支语句,switch case 好于使用多个 ifelse if 语句,并且代码更加容易阅读和维护

13、当 echo 字符串时用逗号代替点连接符更快些。echo 一种可以把多个字符串当作参数的

“函数”。echo是语言结构,不是真正的函数,故把函数加上了双引号

14、去除 HTML 标签以及空格换行等字符 preg_replace("/(\s|\ \;| |\xc2\xa0)/", "",

strip_tags($str))