PHP一些实用小技巧-php教程

资源魔 24 0

一、字符串类型数字转数字类型

$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开发自学

抱歉,评论功能暂时关闭!