- 脚本结束时,全局变量消失
- 函数执行完时,局部变量消失
- 静态变量
static关键字
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。
静态变量仅会被初始化一次,其他局部变量每次被调用时都会被重新赋值。
static声明的静态变量的生命周期会被一直延续。
foreach
foreach (array_expression as [$key =>] & $value)
当foreach开始执行时,数组内部的指针会自动指向第一个单元。
获取元素信息后,移动指针,再执行循环体
1. foreach本身循环结构,break和continue适用于foreach
2. foreach支持循环的替代语法。
3. $value是保存元素值的变量,对其修改不会改变数组的元素值
4. $value支持元素值的引用拷贝,在$value前加上&即可
5. $key不支持引用传递
6. foreach遍历的是原数组的拷贝,而在循环体对数组的操作是操作原数组
即循环体对数组的操作,对原数组生效,对遍历不生效。
先拷贝一份数组用作遍历
count 计算数组中的单元数目或对象中的属性个数
array_count_values 统计数组中所有的值出现的次数
array_product 计算数组中所有值的乘积
array_sum 计算数组中所有值的和
range 建立一个包含指定范围单元的数组
array_chunk 将一个数组分割成多个
array_chunk(array $input, int $size[, bool $preserve_keys])
array_filter 用回调函数过滤数组中的单元
array_slice 从数组中取出一段
array_slice($arr, $offset [,$len [,$preserve_keys]])
array_keys 返回数组中所有的键名
arrayarray_keys(array $input[, mixed $search_value[, bool $strict]] )
如果指定了可选参数 search_value,则只返回该值的键名。否则input数组中的所有键名都会被返回。
array_values 返回数组中所有的值,并建立数字索引
array_merge 合并一个或多个数组
一个数组中的值附加在前一个数组的后面。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
array_merge_recursive 递归地合并一个或多个数组
sort 对数组排序
rsort 对数组逆向排序
asort 对数组进行排序并保持索引关系
arsort 对数组进行逆向排序并保持索引关系
ksort 对数组按照键名排序
krsort 对数组按照键名逆向排序
usort 使用用户自定义的比较函数对数组中的值进行排序
uksort 使用用户自定义的比较函数对数组中的键名进行排序
uasort 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
natsort 用用“自然排序”算法对数组排序
natcasesort 用“自然排序”算法对数组进行不区分大小写字母的排序
array_multisort 对多个数组或多维数组进行排序
shuffle 将数组打乱