注册 | 登录 |
易站导航

PHP一些有用小技巧

时间: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一些有用小技巧的具体内容,更多请关注站长在线其它相关文章!


上篇:用PHP+Redis实现推迟任务 实现主动取消订单(细致教程...

下篇:PHP运用QueryList轻松实现一个baidu网盘资源搜...