自定义函数及内置函数
# 变量作用域
变量的作用域也称变量的范围,变量的范围即它定义的上下文背景。大部分的PHP变量只有一个单独的范围,这个单独的范围跨度同样包含了include和require引入的文件。
$outer = 'str';
function myfunc() {
global $outer;
echo $outer;
}
1
2
3
4
5
6
2
3
4
5
6
# 静态变量
静态变量仅在局部函数域存在,但当程序执行离开此作用域时,其值并不会消失。
static关键字
- 仅初始化
- 初始化时需要赋值
- 每次执行函数该值会保留
- static修饰的变量是局部的,仅在函数内部有效
- 可以记录函数的调用次数,从而可以在某些条件下终止递归
$count = 5;
function get_count() {
static $count;
return $count++;
}
echo $count;
$count++;
// NULL
echo get_count();
// 1
echo get_count();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 函数的返回值
- 默认情况函数参数通过值传递,引用传递需要使用&
- 值通过使用可选的返回语句return返回
- 可以返回包括数组和对象的任意类型
- 返回语句会中止函数执行,将控制权交回函数调用处。
- 省略return,返回NULL,不可返回多个值
function &myFunc(){
static $a =10;
return $a;
}
// 10
echo myFunc();
$a= &myFunc();
$a = 100;
// 100
echo myFunc();
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 外部文件的导入
# include与require
- include/require 语句包含并运行指定的文件
- 当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围。
- 加载过程中未找到文件,include发出警告,而require回发出一个致命的错误,require在出错时产生E_COMPILE_ERROR的错误,导致脚本终止。
- include_once和include唯一区别就是php会检查文件是否被包含过
# 系统内置函数
# 时间日期函数
# IP处理函数
# 打印处理
# 序列化与反序列化
# 字符串处理
# 数组处理
- array_keys
- array_values
- array_diff
- array_intersect
- array_merge
- array_shift
- array_unshift
- array_pop
- array_push
- sort
# 回顾真题
<?php
$var1 = 5;
$var2 = 10;
function foo(&$my_var) {
global $var1;
$var1 +=2;
$var2 = 4;
$my_var +=3;
return $var2;
}
$my_var = 5;
// 4
echo foo($my_var)."\n";
// 8
echo $my_var."\n";
// 7
echo $var1;
// 10
echo $var2;
$bar = 'foo';
$my_var = 10;
// 4
echo $bar($my_var).\n;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
上次更新: 2020/12/31, 06:55:18