PHP高级用法总结
# 数组方法
# current()/next()/reset()
$arr = ['name','zhoufei','age'];
echo current($arr), PHP_EOL; // name
echo current($arr), PHP_EOL; // name
echo next($arr), PHP_EOL; // zhoufei
echo key($arr), PHP_EOL; // 1
echo reset($arr), PHP_EOL; // name
1
2
3
4
5
6
7
2
3
4
5
6
7
# array_filter()
该函数把输入数组中的每个键值传给回调函数,如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组,数组键名保持不变。
示例:
$arr = ['key' => 100, 'name' => '', 'year' => NULL];
var_dump(array_filter($arr));
// array(1) {
// ["key"]=>
// int(100)
// }
1
2
3
4
5
6
7
2
3
4
5
6
7
# array_slice()
该函数从输入数组的选定部分。
语法:array_slice(array,start,length,preserve)
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
start | 必需。数值。规定取出元素的开始位置。 0 = 第一个元素。 如果该值设置为正数,则从前往后开始取。如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。 |
length | 可选。数值。规定被返回数组的长度。 如果该值设置为整数,则返回该数量的元素。如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。 |
preserve | 可选。规定函数是保留键名还是重置键名。可能的值:true - 保留键名 / false - 默认,重置键名 |
注意:如果数组有字符串键名,所返回的数组将保留键名, 特别注意第四个参数,有意向不到的效果
# 过滤器
如需过滤变量,请使用下面的过滤器函数之一:
filter_var()
- 通过一个指定的过滤器来过滤单一的变量filter_var_array()
- 通过相同的或不同的过滤器来过滤多个变量filter_input()
- 获取一个输入变量,并对它进行过滤filter_input_array()
- 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
var_dump(filter_var('true', FILTER_VALIDATE_BOOLEAN));
var_dump(filter_var('false', FILTER_VALIDATE_BOOLEAN));
//bool(true)
//bool(false)
1
2
3
4
5
2
3
4
5
# number_format
通过千位分组来格式化数字
用法:number_format(number,decimals,decimalpoint,separator)
<?php
echo number_format("1000000")."<br>"; // 1,000,000
echo number_format("1000000",2)."<br>"; // 1,000,000.00
echo number_format("1000000",2,",","."); // 1.000.000,00
?>
1
2
3
4
5
2
3
4
5
# 其他
# date('U')
var_dump(date('U'));
var_dump(strtotime('2 days ago'));
// string(10) "1619937260"
// int(1619764460)
1
2
3
4
2
3
4
# random_bytes()
生成适合于加密使用的任意长度的加密随机字节字符串,例如生成salt、密钥或初始化向量等。
用法:string random_bytes ( int $length )
,返回值为ASCII字符串, 一般配合bin2hex()函数使用
# bin2hex()
把 ASCII 字符的字符串转换为十六进制值。字符串可通过使用 pack() 函数再转换回去
<?php
$str = bin2hex("Hello World!");
echo($str); // 48656c6c6f20576f726c6421
?>
1
2
3
4
2
3
4
# usleep()
usleep() 函数延迟执行当前脚本若干微秒(一微秒等于一百万分之一秒)
<?php
echo date('h:i:s') . "<br>";
// 延迟执行当前脚本 5 秒(5000000 微秒)
usleep(5000000);
echo date('h:i:s');
?>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
上次更新: 2022/12/01, 11:09:34