PHP 笔记


  PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种开源多用途弱类型动态脚本语言,具有免费,快速,灵活和实用等特点,它可嵌入到 HTML中,尤其适合 web 开发。

1、PHP代码解析过程

1、词法分析 Scanning( Lexing ),将 PHP 代码转换为语言片段( Tokens )。
2、解析 Parsing, 将 Tokens 转换成简单而有意义的表达式。
3、编译 Compilation,将表达式编译成 Opcode 。
4、执行 Execution,顺序执行 Opcode,每次一条,以实现PHP代码所表达的功能。

2、数组操作

2.1、键名改为小写或大写

array_change_key_case(array, case);
//CASE_UPPER:改键值为大写,CASE_LOWER:改键值为小大写。

2.2、数组分块

array_chunk(array, size, preserve_key);
//size:整数,preserve_key:可选,true 保留原始键名,false使用从零开始的数字键名。

2.3、返回键值

array_values(array);
//所有键值,不保留键名,使用从零开始的数字键名。
array_slice(array, start, length, preserve)
//返回指定键值。
//start 必填,开始位置,0 = 第一个元素,-2 意味着从数组的倒数第二个元素开始。
//length 可选,规定被返回数组的长度。
//如果该值设置为整数,则返回该数量的元素。
//如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。
//如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。
//preserve
//可选。规定函数是保留键名还是重置键名。可能的值:
//true - 保留键名
//false - 默认。重置键名

array_column(array, column_key, index_key);
//取单列值,column_key:要返回列的键名,index_key:新数组的键名。

2.4、键值去重

array_unique(array, sortingtype);
//适用一维数组,sortingtype 规定如何比较数组元素/项目。
//SORT_STRING - 默认。把项目作为字符串来比较。
//SORT_REGULAR - 把每一项按常规顺序排列( Standard ASCII,不改变类型 )。
//SORT_NUMERIC - 把每一项作为数字来处理。
//SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置( 可通过 setlocale() 进行更改 )。

2.5、返回键名

key(array);
//返回当前键名。

array_keys(array, value, strict);
//返回所有键名
//value 可选,指定只有该键值对应的键名会被返回。
//strict 可选,与 value 参数一起使用。可能的值:
//true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的,
//false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。

2.6、合并数组

array_merge(array1, array2, array3...);
//键名相同的将会被合并,取靠后的键值。

2.7、数组增删

array_pop(array);
//删除数组末位值( 出栈 )。
array_push(array,value1,value2...);
//向第一个参数的数组尾部添加一个或多个元素( 入栈 ),然后返回新数组的长度。
array_shift(array);
//删除数组中第一个元素,并返回被删除元素的值。
array_unshift(array, value1, value2, value3...);
//在数组开头插入一个或多个元素。

array_splice(array, start, length, newarray);
//移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。
//start 必填,开始位置,0 = 第一个元素,-2 意味着从数组的倒数第二个元素开始。
//length 可选,规定被移除的元素个数,也是被返回数组的长度。
//如果该值设置为正数,则移除该数量的元素。
//如果该值设置为负数,则移除从 start 到数组末端倒数 length 为止中间所有的元素。
//如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。
//array 可选,规定带有要插入原始数组中元素的数组。
//如果只有一个元素,则可以设置为字符串,不需要设置为数组。

2.8、排序

sort(array, sortingtype);
//正向,去除键名
rsort(array, sortingtype);
//逆向,去除键名

asort(array, sortingtype);
//键值正向,保留键名
arsort(array, sortingtype);
//键值逆向,保留键名

ksort(array, sortingtype);
//键名正向,保留键名
krsort(array, sortingtype);
//键名逆向,保留键名

uasort(array, myfunction);
//自定义函数键值排序,保留键名
uksort(array, myfunction);
//自定义函数键名排序,保留键名

//自然排序中 2 小于 10 ,计算机排序中 10 小于 2 。
natsort();
//区分大小写,保留键名。
natcasesort(array);
//不区分大小写,保留键名。

array_multisort(array1, sortingorder, sortingtype , array2, array3...)
//多个或多维数组排序
//sortingorder 可选,SORT_ASC - 默认。按升序排列 (A-Z),SORT_DESC - 按降序排列 (Z-A)。

//sortingtype
//按字母进行升序排序,原有的键名将被删除,成功则返回 TRUE,否则返回 FALSE。
//0 = SORT_REGULAR - 默认,把每一项按常规顺序排列(Standard ASCII,不改变类型)。
//1 = SORT_NUMERIC - 把每一项作为数字来处理。
//2 = SORT_STRING - 把每一项作为字符串来处理。
//3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
//4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
//5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

2.9、数组计算

array_sum(array);
//返回数组中所有值的和,如果所有值都是整数,则返回一个整数值。如果其中有一个或多个值是浮点数,则返回浮点数。
array_product(array);
//计算并返回数组的乘积。
count(array,mode);
//mode可选。规定模式。可能的值:
//0 - 默认。不对多维数组中的所有元素进行计数。
//1 - 递归地计数数组中元素的数目(计算多维数组中的所有元素)。

array_count_values(array);
//返回一个数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。

3、字符串操作

3.1、字符串长度

strlen(string);
//返回字符串长度。

3.2、字符定位

strpos(string, 'a');
//返回字符位置。

3.3、大小写转换

lcfirst(string);
//把字符串中的首字符转换为小写
ucfirst(string);
//把字符串中的首字符转换为大写
strtolower(string);
//把字符串转换为小写
strtoupper(string);
//把字符串转换为大写

3.4、字符串分割为数组

explode(separator, string, limit);
//separator 必需,规定在哪里分割字符串。
//string 必需,要分割的字符串。
//limit 可选,规定所返回的数组元素的数目。
//大于 0 - 返回包含最多 limit 个元素的数组
//小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
//0 - 返回包含一个元素的数组

3.5、散列

md5(string, raw);
//计算字符串的 MD5 散列。
md5_file(file, raw);
//计算文件的 MD5 散列。
//raw 可选,规定十六进制或二进制输出格式:
//TRUE - 原始 16 字符二进制格式
//FALSE - 默认。32 字符十六进制数。

4、Math 函数

4.1、取绝对值

abs(x);

4.2、小数点精度

round(x, prec);
//prec 定义小数点位数

4.3、随机整数

rand(min, max);

4.4、返回最大最小值

min(x, y);
max(x, y);

4.5、返回余数

fmod(x, y);
// 5 除 2 余 1。

4、正则

//todo



下一篇 MySQL 笔记
上一篇 碧海蓝天
查看评论