一、字符串类型数字转数字类型
$str = '123'; //办法一 (int)$str; //办法二 intval($str); //办法三 +$str;
办法一以及办法二是强迫转换,即便字符串数字后含有字母。办法三则必需保障是纯数字字符串,不然报错。
保举:《php培训》
二、数组增加元素
$arr = ['a']; //办法一 array_push($arr,'b', 'c'); //办法二 $arr[] = 'd';
一、假如是压入一个元素,应用办法二效率高,由于能够节流挪用函数的额定累赘。
二、假如同时压入多个元素,应用array_push效率高,由于不必反复猎取文件尾的指针。
三、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嘛!
四、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内接纳的变量数多于实际二维数组内的长度会报错,少于能够只是接纳没有到,以是要应用时仍是要考量一下。
五、对于null判别
//写法一 is_null($a); //写法二 $a === null
两种写法写法成果是齐全同样的,应用办法二节流函数挪用。
另外能用===就别用==了。
六、多个判别
$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: // }
七、list妙用
//妙用一 list($a,$b) = [$b,$a]; //妙用二 list(,$fn) = explode('_','Api_deleteUser');
八、英文字符串长度超限
//普通形式 strlen($str) > 10; //优化形式 isset($str[10]);
isset是PHP语句,strlen是函数。
九、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,[]的状况。
十、两个变量替换
//形式一:比拟明晰,有变量孕育发生 $temp = $a; $a = $b; $b = $temp; //办法二:比拟明晰,但也会孕育发生暂时变量 list($b, $a) = [$a,$b]; //形式三:正在整数运算时互逆运算比拟靠谱,但+ – * /可能精度失落或溢出 $a = $a + $b; $b = $a - $b; $a = $a - $b;
十一、防止应用递归
//递归 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]; }
十二、没有要省略if后的年夜括号
//写法一 if($a === null) $a = 1; //写法二 if($a === null) $a = 1; //写法三 if($a === null){ $a = 1; } //假如能够防止写if更好 $a = $a ?? 1;
1三、应用$_SERVER[‘REQUEST_TIME’]替代time().
后者会引来一次函数挪用, 而假如对工夫的准确值要求没有高,前者快不少.
1四、少用/不必continue
continue是回到轮回的头部, 而轮回完结原本就是回到轮回的头部, 以是经过适当的结构, 咱们齐全能够防止应用这条语句, 使患上效率失去改善.
1五、变量先界说后应用
应用一个不决义的变量, 比应用一个界说好的变量要慢8倍以上!
PHP引擎会起首依照失常的逻辑来猎取这个变量, 但是这个变量没有存正在, 以是PHP引擎需求抛出一个NOTICE,进入一段应用不决义变量时应该走的逻辑, 而后前往一个新的变量.
1六、对于定名
依据PSR标准,办法须应用小驼峰式。
依据PSR标准,类的定名须为年夜驼峰式。
变量的定名正在标准里不明白,名目内对立。(下划线式仍是易懂一些)
布尔变量只管即便应用can、is、has扫尾。
1七、防止应用正则
1八、用年夜括号括起正在双引号以及heredoc中的变量
更多编程相干内容,请存眷资源魔编程教程栏目!
相干保举:
PHP视频教程,学习地点:https://www.php.cn/course/list/29/type/2.html
以上就是PHP一些适用小技术的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学