百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> PHP一些有用小技巧
分享文章到:

PHP一些有用小技巧

发布时间:09/01 来源:未知 浏览: 关键词:

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一些有用小技巧的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板