king的园子

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变量不会销毁,即静态变量。

posted @ 2020-02-24 10:07  _元歌  阅读(186)  评论(0)    收藏  举报