时间:2021-07-15人气:-
1、字符串类型数字转数字类型
$str = '123'; //办法一 (int)$str; //办法二 intval($str); //办法三 +$str;
办法一和办法二是强迫转换,即便字符串数字后含有字母。办法三则必需包管是纯数字字符串,不然报错。
引荐:《php培训》
2、数组增加元素
$arr = ['a']; //办法一 array_push($arr,'b', 'c'); //办法二 $arr[] = 'd';
1、假如是压入一个元素,使用办法二效力高,由于可以节约调取函数的额外肩负。
2、假如同时压入多个元素,使用array_push效力高,由于不消反复猎取文件尾的指针。
3、for轮回
//正常写法 for($i = 0; $i < count($arr); $i++){ // } //优化一 for($i = 0, $len = count($arr); $i < $len; $i++){ // } //优化二 for($i = count($arr) - 1; $i > -1; --$i){ // }
优化一:这个问题在于前提推断每次都要运算数组的长度,不如一开端声明一个变量存入。其他说话for轮回大约同理吧…
优化二:在不需要从小到大的状况下,可以节约一个$len变量。还有就是--$i比$i--要快这个小优化。
总结:也不是说优化二就必然好,我只是想到这个写了出来。不外一个好的for轮回我觉得起码还是要留意到优化一这个的,别的$i++可以改成++$i嘛!
4、foreach遍历
//写法一 foreach($arr as $k => $v){ // } //写法二 foreach($arr as $v){ // } //写法三 foreach($arr as &$v){ // } //写法四 $arr = [ [1,2,3], [4,5,6] ]; foreach($arr as list($a,$b,$c)){ // }
1.第一你要知道一个事儿,写法一和写法二里$v是不取址的,$v是键值的拷贝。所以别在foreach里更换数组/对象本身,没有用。
2.不需要键名或者索引的时候,别写$k这个事没啥好说的。
3.关于写法三取址援用赋值这个,好处是在当值很大的时候节约空间。但是要留意的是,不管哪种写法,$v在foreach轮回之后都会保存,这个时候假如你是取址的写法,那么再次使用$v可就坏事了,手册是倡议unset($v)。
4.写法四是针关于二维数组/对象的利用,使用list对键值数组停止解包。留意list内接收的变量数多于实际二维数组内的长度会报错,少于可以只是接收不到,所以要使用时还是要考量一下。
5、关于null推断
//写法一 is_null($a); //写法二 $a === null
两种写法写法结果是完全一样的,使用办法二节约函数调取。
别的能用===就别用==了。
6、多个推断
$a = 1; //写法一 if($a === 0){ // }elseif($a === 1){ // }else{ // } //写法二 do{ if($a === 0){ // break; } if($a === 1){ // break; } // }while(false); //写法三 switch(true){ case 0: // break; case 1: // break; default: // }
7、list妙用
//妙用一 list($a,$b) = [$b,$a]; //妙用二 list(,$fn) = explode('_','Api_deleteUser');
8、英文字符串长度超限
//一样方式 strlen($str) > 10; //优化方式 isset($str[10]);
isset是PHP语句,strlen是函数。
9、null推断赋值几种写法
//当$a不为null时$b = $a,不然$b = 233333。 //方式一 $b = $a or $b = 233333; //方式二 $b = $a ? $a : 23333; //方式三 $b = $a ?: 233333; //方式四,PHP7 $b = $a ?? 233333;
留意区分方式三和方式四的不同,明白本人到底想推断啥。除了方式四,其他三种还可以推断false,'','0',0,[]的状况。
10、两个变量交流
//方式一:比力清楚,有变量发生 $temp = $a; $a = $b; $b = $temp; //办法二:比力清楚,但也会发生暂时变量 list($b, $a) = [$a,$b]; //方式三:在整数运算时互逆运算比力靠谱,但+ – * /大概精度丧失或溢出 $a = $a + $b; $b = $a - $b; $a = $a - $b;
11、幸免使用递归
//递归 function fibonacci($n){ if($n == 0 || $n == 1){ return 1; } return fibonacci($n - 1) + fibonacci($n - 2); } //非递归 function fibonacci($n){ $arr = [1,1]; for($i = 2; $i < $n + 1; ++$i){ $arr[] = $arr[$i - 1] + $arr[$i - 2]; } return $arr[$n]; }
12、不要省略if后的大括号
//写法一 if($a === null) $a = 1; //写法二 if($a === null) $a = 1; //写法三 if($a === null){ $a = 1; } //假如可以幸免写if更好 $a = $a ?? 1;
13、使用$_SERVER[‘REQUEST_TIME’]代替time().
后者会引来一次函数调取, 而假如对时间的准确值要求不高,前者快许多.
14、少用/不消continue
continue是回到轮回的头部, 而轮回完毕原本就是回到轮回的头部, 所以通过恰当的结构, 我们完全可以幸免使用这条语句, 使得效力得到改善.
15、变量先定义后使用
使用一个不决义的变量, 比使用一个定义好的变量要慢8倍以上!
PHP引擎会第一依照正常的逻辑来猎取这个变量, 然而这个变量不存在, 所以PHP引擎需要抛出一个NOTICE,进入一段使用不决义变量时应当走的逻辑, 然后返回一个新的变量.
16、关于命名
按照PSR标准,办法须使用小驼峰式。
按照PSR标准,类的命名须为大驼峰式。
变量的命名在标准里没有明白,项目内统一。(下划线式还是易懂一些)
布尔变量尽量使用can、is、has开头。
17、幸免使用正则
18、用大括号括起在双引号和heredoc中的变量
更多编程相关内容,请关注站长在线编程教程栏目!
相关引荐:
PHP视频教程,学习地址:https://www.php.cn/course/list/29/type/2.html
以上就是PHP一些有用小技巧的具体内容,更多请关注站长在线其它相关文章!