数组常用函数
| 函数名称 | 描述 | 用法 | return |
|---|---|---|---|
| array_key_exists |
检查数组里是否有指定的键名 | $arr = [“a”=>”red”,’b’=>’blue’]; array_key_exists(‘a’,$arr) |
bool |
| array_search(val,$arr) | 搜索键值,并返回它的键名 不存在则返回 bool(false) |
$arr = [“a”=>”red”,’b’=>’blue’]; array_search(‘blue’,$arr) |
b |
| is_array(val,$arr) | 给定的值是否在数组中 | $ar = [‘a’,’b’,’v’]; is_array(‘a’,$arr) |
bool |
| array_flip |
键值反转 交换数组中键和值的位置,若重复前面的会被后面的覆盖 |
$a1=array(“a”=>”red”,”b”=>”green”,”c”=>”blue”,”d”=>”red”) array_flip($a1) |
Array ( [red] => d [green] => b [blue] => c ) 同键名会覆盖 所以a被覆盖了 |
| shuffle [ˈʃʌfl] |
打乱数组 | $arr = [1,2,3,4,5,6]; shuffle($arr) |
array |
| array_merge [mɜːdʒ] |
合并数组 | $arr1 = [1];$arr2=[2]; array_merge($arr1,$arr2) |
[1,2] |
| implod | 数组转字符串 | $arr = [1,2,3,4,5] implode(‘,’$arr) |
‘1,2,3,4,5’ |
| array_unique [juˈniːk] |
移除数组中重复的值 |
$arr = [1,1,2,3,3,4,4]; array_unique($arr) |
Array ( [0] => 1 [2] => 2 [3] => 3 [5] => 4 ) 数组中重复的1被删除了 只留下了一个 键名会保留当前 |
| array_keys | 取出数组中键 | ||
| array_values | 取出数组中值 | ||
| array_key_first | 得到数组的第一个键名 | ||
| array_key_last | 得到数组最后一个键名 | ||
| array_shift | 删除数组中的第一个元素,并返回被删除的元素 | $arr = [1,2,3,4,5] array_shift($arr) |
1 |
| array_unshift | 在数组头部插入一个或多个单元 | $arr=[‘red’,’green’]; array_unshift($arr,’blue’); print_r(array_unshift($a,’blue’)); print_r($a); |
3 Array ( [0] => blue [1] => red [2] => green ) |
| array_push($arr,$str) | 追加参数到数组末尾 $str 数组or字符串 |
$arr = [1,2] array($arr,’k’,’t’) |
[1,2,’k’,’t’] 也可以追加数组 |
| array_pop | 取出数组中最后一个值 | $arr = [1,2,3,4,5.6] array_pop($arr) |
[1,2,3,4,5] |
| count($arr) | 统计数组 默认为0 | count($arr) | |
| array_count_values | 统计键值次数 | $a = [‘q’,’w’,’q’]; array_count_values($a) |
Array ( [q] => 2 [w] => 1 ) |
| array_sum | 计算数组的所有键值的和 | $arr = [1,2,3,4,5] array_sum($arr) |
15 |
| array_splice($arr1,start,length,$arr2) | 从数组中移除元素,并用新元素取代它 statr截取位置, lenght截取长度【选填】 $arr 插入数据【选填 |
$arr = [1,2,3,4]; $a = [‘q’,’w’]; array_splice($arr,0,2,$a); print_r($arr); array_splice($arr,1,1,$a); |
Array ( [0] => q [1] => w [2] => 3 [3] => 4 ) Array ( [0] => 1 [1] => q [2] => w [3] => 3 [4] => 4 ) |
| sort | 数组升序 | $arr = [1,3,5,4,2] sort($arr) $str = [‘c’,’a’,’b’]; |
[1,2,3,4,5] [‘a’,’b’,’c’] |
| asort | 数组降序 | $arr = [1,2,4,3,8,7]; arsort( $arr ); print_r( $arr ); |
Array ( [4] => 8 [5] => 7 [2] => 4 [3] => 3 [1] => 2 [0] => 1 ) 与sort区别是 键名不改变 |
| rsort | 数组倒序 | $arr = [1,3,5,4,2] sort($arr) |
[5,4,3,2,1] |
| array_chunk($arr,lenght) | 切割数组块 lenght 每个数组块元素的个数) |
$arr = [1,2,3] array_chunk($arr,2) |
Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] =>Array ( [0] => 3 ) ) |
| array_change_key_case | 改变键名大小写 CASE_UPPER 大写 CASE_LOWER 小写 默认 |
$arr = [‘time’=>2022-02-02] array_change_key_case($arr,CASE_UPPER) |
[‘TIME’=>2022-02-02] 可以结合键值互换 配合使用 array_flip |
| array_rand($arr,$num) | 数组随机数 num 数组个数 |
$arr = [1,2,3,4,5,6] array_rand($arr,2) |
[2,5] |
| array_prduct | 计算数组乘积 | $arr = [2,3] array_product($arr) |
6 |
| array_reverse | 数组倒叙 | $arr = [1,2,3,4,5]; array_reverse($arr) |
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 ) |
| array_combine($key,$val) | 用一个数组的值作为其键名,另一个数组的值作为其值 | $arr = [1,2,3]; $a = [‘q’,’w’,’a’]; array_combine($a,$arr) |
Array ( [q] => 1 [w] => 2 [a] => 3 ) |
| array_fill_keys | 用给定的指定键名的键值填充数组 | $keys=[‘a’,’b’,’c’]; array_fill_keys($keys,”blue”) |
Array ( [a] => blue [b] => blue [c] => blue ) |
| array_fill(start,lenght,$str) | 用给定的键值填充数组 start 开始键名 lenght 数组长度 |
array_fill(2,4,”blue”) | Array ( [2] => blue [3] => blue [4] => blue [5] => blue ) |
| array_pad($arr,lenght,$str) | 将指定数量的带有指定值的元素插入到数组中 |
$arr = [1,2,3]; array_pad($arr,4,’qps’) |
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => qps [4] => qps ) |
| array_slice($arr,lenght) | 返回数组中的选定部分 剔除选中的lenght长度,返回数组 |
$arr = [1,2,3,4,5]; array_slice($arr,2) |
Array ( [0] => 3 [1] => 4 [2] => 5 ) |
| compact | 创建一个包含变量名和它们的值的数组 | $firstname = “Peter”; $lastname = “Griffin”; $age = “41”; compact(“firstname”, “lastname”, “age”); |
Array ( [firstname] => Peter [lastname] => Griffin [age] => 41 ) |
| extract | 数组键名作为变量名 | $data = [‘name’ => ‘pqs’,’age’ => 12]; extract($data); print_r($name); |
qps |
| range(starat,lenght,step) | 创建一个包含指定范围的元素的数组 step 数组的倍数 可选 |
range(1,5); range(0,14,3) |
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) Array ( [0] => 0 [1] => 3 [2] => 6 [3] => 9 [4] => 12 ) |
| array_diff | 比较键值,返回差集 | $num = [1,2,3,4,5,’qps’]; $num1 = [1,2,3,4]; array_diff($num,$num1) |
Array ( [4] => 5 [5] => qps ) |
| array_udiff | 用回调函数比较数据来计算数组的差集 | ||
| array_diff_key | 键名比较计算数组的差集 | $a1=array(“a”=>1,”b”=>2,”c”=>3); $a2=array(“a”=>4,”c”=>5,”d”=>6); array_diff_key($a1,$a2); |
Array ( [b] => 2 ) |
| array_diff_assoc | $a1=array(“a”=>1,”b”=>2,”c”=>3); $a2=array(“a”=>1,”c”=>5,”d”=>6); $result=array_diff_assoc($a1,$a2); |
||
| array_intersect | 比较两个数组或多个的值,并返回交集 | $arr = [1,2,3,4];$a = [1,2,’q’,’w’]; |
字符串常用函数
| 函数名称 | 描述 | 用法 | return |
|---|---|---|---|
| strtolower | 字符串全部转小写 | $str = ‘HELLO WORD’ strtolower($str) |
hello word |
| strtoupper |
字符串全部转大写 | $str = ‘Hello WORLD!’ strtoupper($str”) |
Hello WORLD! |
| explode | 字符串转数组 | $str = ‘1,2,3,4,5’; explode(‘,’,$str) explode(‘,’,$str,3) |
[1,2,3,4,5] Array ( [0] => 1 [1] => 2 [2] => 3,4,5 ) |
| str_split | 字符串切割成数组 不填默认唯一 |
$str = ‘1,2,3,4,5,6’; str_split($str) str_split($str,3) |
[1,2,3,4,5,6] Array ( [0] => 123 [1] => 456 ) |
| strlen | 统计字符串长度 | $str = ‘hello word’; stelen($str) |
10 |
| substr(str,start,len) | 字符串截取长度 start 开始位置 len 截取个数 |
$str = ‘hello word’; subltr($str,4) substr($str,4,5) substr($str,1,-2) |
o word o wor ello wor |
| strrev | 反转字符串 | $str = ‘hello word!’; strrev($str) |
!drow olleh |
| strpos(str,find,start) | 查找字符串在另一字符串中第一次出现的位置 start 开始位置 未找到返回false 对大小写敏感 |
$str = ‘hello word!’; $str1 = ‘rd’; strpos($str,$str1) strpos($str,$str1,8) |
8 false |
| strchr(str,search,before_search) | 搜索字符串在另一字符串中的第一次出现 | $str = ‘hello word!’; $str1 = ‘rd’; strchr($str,$str1) strchr($str,$str1,true) |
rd! hello wo |
| strrchr(string,char) | 查找字符串在另一个字符串中最后一次出现的位置 | $str = ‘hello word!!!’; $str1 = ‘rd’; strrchr($str,$str1) |
rd!!! |
| trim(str,char) | 移除字符串两侧的空白字符或其他预定义字符 | ||
| ltrim | 移除左侧空白字符 | ||
| rltrim | 移除右侧空白字符 | ||
| str_replace(find,replace,str,count) | 替换字符串中的一些字符 find 规定要查找的值 replace 规定替换 find 中的值的值 count 可选。一个变量,对替换数进行计数 |
||
| str_repeat | 把字符串重复指定的次数 | str_repeat(“.”,13); | …………. |
| addclsashes | 指定的字符前添加反斜杠的字符串 | addcslashes(“Hello World!”,”W”) | Hello \World! |
数字操作函数
| 函数名称 | 描述 | 用法 | return |
|---|---|---|---|
| floor | 舍去小数 | floor(4,23) | 4 |
| abs | 绝对值 | abs(-1,23) | 1.23 |
判断空函数
| 函数名称 | 使用 | 区别 |
|---|---|---|
| empty | ||
| is_null | ||
| != ‘’ | ||
其他函数
| 函数名称 | 描述 | 使用 | return |
|---|---|---|---|
| gettimeofday | 返回当前时间 | gettimeofday() gettimeofday(true) |
array ( [sec] => 1645756911 [usec] => 405241 [minuteswest] => 0 [dsttime] => 0 ) 1645757087.4183 mt_ |
| mt_rand(mix,max) | 随机数生成器 效率是rand的4倍 |
mt_rand(1,1000) mt_rand() |
345 437835361 |
| rand(mix,max) | 生成随机整数 | rand(1,1000) rand() |
641 2109495923 |
| htmlentities | 把字符转换为 HTML 实体 | ||
| htmlspecialchars | 转义 | ||
| memory_get_usage | 返回分配给 PHP 的内存量 | ||
| yield [jiːld] |
生成器 |
判断未空
class test{ }$arr = [];$b = false;$str = '';$c = new test;$null = null;$num = 0;//未定义数据 $k//empty 判断变量是否为 空 与 == 相同[] => bool(true)false => bool(true)'' => bool(true)new test => bool(false) //空对象未假null => bool(true)0 => bool(true)$k => bool(true)//is_null 检测变量是否为 null[] => bool(false)false => bool(false)'' => bool(false)new test => bool(false)null => bool(true)0 => bool(false)$k => bool(true)
区别 require、include、require_once 、include_once
require 和 include 几乎完全一样,除了处理失败的方式不同之外。
require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止
include 只产生警告(E_WARNING),脚本会继续运行
include_once 语句在脚本执行期间包含并运行指定文件。此行为和 include 语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次
对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术
SQL 语句较为复杂时,ORM 语法可读性不高(使用原生 SQL)
Zend执行引擎
抛出异常
try {
intdiv(5, 0);
} catch (\DivisionByZeroError $e) {
echo “出错消息 —- “, $e->getMessage(), PHP_EOL;
}
多个异常抛出
try {
throw new LengthException(“LengthException”);
// throw new DivisionByZeroError(“DivisionByZeroError”);
// throw new Exception(“Exception”);
} catch (\DivisionByZeroError | \LengthException $e) {
echo “出错消息 —- “, $e->getMessage(), PHP_EOL;
} catch (\Exception $e) {
echo “出错消息 —- “, $e->getMessage(), PHP_EOL;
} finally {
// …
}
