PHP系列(二):函数

0X01函数

函数的定义
//函数定义方法:

function 函数名()
{
    函数体;
}

//函数的调用:
函数名();
基本格式:
  1. 函数定义都要以关键字function开始;
  2. 函数名后面要跟紧小括号;
  3. 小括号下面跟着大括号,大括号里面是函数体
函数名命名规范:
  1. 函数名不区分大小写;
  2. 函数名字使用英文,遵循规范;
  3. 数字可以加在中间或者是后面;
  4. 下划线不属于特殊符号;
  5. 不使用特殊符号;
  6. 命名要有含义,尽量值观体现函数的功能;
  7. 遵循驼峰或者下划线;
  8. 不能使用系统给咱们的函数名还有系统已有的关键字。

return

  1. 只要执行到return关键字就会立刻结束,后面的代码不会再继续执行;
  2. 如果需要有多个返回值时,可以使用数组来实现;
  3. 函数调用表达式的值就是函数的返回值;
函数使用注意事项
  1. 函数必须要以function开始定义;
  2. 函数名与变量名的命名规则基本一样,唯一不一样的是函数不区分大小写;
  3. 函数名后面跟括号,括号里面跟参数,也就是变量;
  4. 如果有默认参数,可以直接用“=”给变量赋值;
  5. 函数可以有返回值,也可以没有返回值,可以用return关键字返回值;
  6. 函数的调用和函数的定义顺序没有关系,可以在定义函数之前调用函数,而变量不行;
  7. 函数体外的变量和函数体内的变量通常不是一个变量;
  8. 函数可以反复多次调用。

内库函数

PHP 自带的一些功能函数,可以直接调用。

常用函数

数学函数

随机

rand        产生一个随机整数
mt_rand     生成一个更好的随机数

小数

floor       不大于该数的最大整数
ceil        不小于该数的最小整数
round       四舍五入法取证

其它

abs         绝对值
pi          圆周率
M_PI        常数,与pi()函数的返回值相同
pow         指数表达式
max         最大值
min         最小值

字符串常用函数

大小写转换

strtolower      转换为小写
strtoupper      转换为大写
lcfirst         首字母小写
ucfirst         首字母大写
ucwords         每个单词首字母大写

空白处理

trim            去掉首尾的空白字符
ltrim           去掉开头的空白字符
rtrim/chop      去掉结尾的空白字符

查找定位

strstr/strchr   返回首次出现到结尾的内容
strrchr         返回最后一次出现到结尾的内容
stristr         忽略大小写的版本
strpos          返回首次出现的位置
stripos         strpos忽略大小写的版本
strrpos         返回最后一次出现的位置
strripos        strrpos忽略大小写的版本 
substr          字串提取,可以通过下标方式获取单个字符($str[n])
strpbrk         返回(字符列表中任意字符)首次出现到结尾的内容

比较

strcmp          二进制比较字符串
strcasecmp      strcmp忽略大小写
strnatcmp       自然顺序比较
strnatcasecmp   strnatcmp忽略大小写版本

顺序

str_shuffle     打乱顺序
strrev          逆序字符串

转换

chr             将ASCII码值转换为字符

数组常用函数

1、数组中元素指针的移动

next            向后移动,指向下一个元素
prev            向前移动,指向前一个元素
end             指向最后一个元素
reset           复位,重新指向第一个元素

2、键和值相关的操作

key             获取数组当前元素的键
current/pos     获取数组当前元素的值
array_keys      获取所有的键
array_values    获取所有的值,并为其建立数字索引
array_key_exists/key_exists     判断给定的键是否在数组中
in_array        判断给定的值是否在数组中
array_aearch    根据值返回对应的键名
array_count_values      统计数组中所有的值出现的次数

3、添加/删除元素

array_shift     将数组开头的元素移除数组
array_unshift   向数组开头添加一个或多个元素
array_push      向数组末尾加入一个或多个元素
array_pop       删除数组末尾的一个元素

4、排序

shuffle         将数组打乱(转换为索引数组)
sort            对数组进行排序(排序之后重新索引)
rsort           对数组进行逆向排序
asort           对数组进行排序并保持索引关系
arsort          对数组进行逆向排序并保持索引关系
natsort         用自然顺序算法对数组进行排序
natcasesort     natsort忽略大小写的版本
ksort           对数组按照键名进行排序
krsort          对数组按照键名逆向排序
usort           使用用户自定义的比较函数对数组的值进行排序
uasort          使用用户自定义的比较函数对数组的值进行排序并保持缩影关系
usort           使用自定义的比较函数对数组的键名进行排序

5、元素运算

array_sum       计算数组中所有值的和
array_product   计算数组中所有值的乘机
count/sizeof    计算数组中元素的个数

6、创建数组

range           建立一个包含指定范围单元的数组(可以指定步幅,可以指定递减)
compact         创建一个包含变量与其值的数组
extract         从数组中将变量导入当前的符号表(与compact功能相反)
array           新建一个数组
array_merge     合并一个或多个数组(关联会覆盖,索引会重新索引,若想保留索引可以使用“+”)
array_merge_recursive   递归合并一个或多个数组
array_combine   用一个数组的值作为键名,另一个数组的值作为值创建数组

7、其他

array_chunk     将数组分割成指定长度的小数组
array_map       将回调函数作用到每个元素上,返回处理的结果数组(新数组)
array_walk      将回调函数作用到每个元素上(会改变原数组),返回真假
array_filter    使用回调函数过滤数组(回调函数返回真才会出现在结果中)
array_flip      返回交换键和值后的新数组
array_rand      随机从数组中抽取一个元素或多个元素的键
array_replace   使用后面的数组中元素替换第一个数组中的元素
array_reverse   返回一个单元顺序相反的数组(关联数组会保持键值对应,索引数组需要传递第二个参数)
array_unique    移出数组中重复的值

作用域

作用域是指一个变量作用的范围,或者叫做变量生命周期。

局部变量

在一个函数体内声明的变量,内部变量的作用域,只在函数体内生效,函数执行完后自动销毁(垃圾回收机制)。

外部变量

外部变量就是在函数体外声明的变量,不能在函数体内使用;

内部变量和外部变量的命名可以一样,但不建议这么做。

超全局变量

既能在函数内部使用,又能在函数体外使用的变量。即局部变量和外部变量是同一个。

$_GET
$_POST
$_FILE
$_COOKIE
$_SESSION
$GLOBALS

静态变量

funcation total()
{
    static $num = 2;
    $num *= 2;
    echo $num;
}

total();    //第一次调用:4

total();    //第二次调用:8

total();    //第三次调用:16

...

这个变量只会初始化一次,在运行的事后他会记录上一次的值,static变量不会销毁,即静态变量。

猜你喜欢

转载自www.cnblogs.com/k1ng/p/12355757.html