函数
1. 语法
函数是实现代码复用的重要方式,在所有编程语言中均如此
function 函数名称(类型: 参数列表): 返回值类型
{
// 函数体
return 返回值;
}
序号 |
名称 |
描述 |
1 |
function |
声明函数 |
2 |
函数名称 |
符合 PHP 标识符命名规范,不区分大小写 |
2 |
参数列表 |
零个或多个接收外部传入到函数的变量 |
2 |
{... |
创建出一个封闭的函数作用域 |
2 |
函数体 |
由零个可多个合法的 PHP 语句组成 |
2 |
return 值 |
将执行结果返回函数调用者[可选] |
2 |
...} |
函数执行结束,如果没有return ,则返回null |
2. 类型
序号 |
类型 |
语法 |
描述 |
1 |
自定义函数 |
function getName(){...} |
用户根据业务需求创建 |
2 |
系统函数 |
substr(), count()... |
也叫预定义函数,不必声明直接调用 |
3 |
可变函数 |
$funcName(); |
函数名使用变量表示 |
4 |
匿名函数 |
$f = function (){...} |
也叫”闭包”或”函数表达式”,常用做回调处理 |
示例:2.1自定义函数
<?php
function sun($a,$b)
{
$num = $a + $b;
return $num;
}
echo sun(5,8);
?>
2.2系统函数
<?php
echo substr("Hello world",6);
?>
2.3可变函数
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
2.4匿名函数
<?php
$n=1;
$test1 = function($value)use ($n)
{
echo $value.' and '.$n;
};
$test1('HelloWorld');
?>
3. 返回值
序号 |
场景 |
描述 |
1 |
return |
可以返回任何类型的值,包括函数类型 |
2 |
无return |
遇到} 也会返回, 默认返回null |
序号 |
返回值类型 |
描述 |
1 |
string |
字符串拼接 |
2 |
array |
数组 |
3 |
json |
JSON 字符串 |
4 |
serialize |
序列化字符串 |
json 和序列化,使用时需要进行解码操作
示例
<?php
function small_numbers(){
return array(0, 1, 2);
}
list($zero, $one, $two) = small_numbers();
echo $zero . $one . $two;
?>
4. 参数
- 调用者可以通过参数将数据传递到函数中
- 参数是以逗号分隔的表达式列表
- 参数按照从左到右的顺序求值
参数类型
序号 |
类型 |
描述 |
1 |
值参数 |
默认传参方式 |
2 |
引用参数 |
改变原始调用参数值 |
3 |
默认参数 |
调用时允许省略的参数 |
4 |
剩余参数 |
调用参数数量不确定 |
示例:4.1值参数
function test($name,$age){
echo '姓名:'.$name,' 年纪:'.$age;
}
test('weixin',23); // 姓名:weixin 年纪:23
test($name='weixin',$age=23); // 姓名:weixin 年纪:23
4.2引用参数
<?php
function test($a){
$a = 200; // 函数中改变参数值为200
}
$b = 100; // 父程序中声明一个全局变量$b并给一个初始值100
test($b); // 调用test函数 将100传给函数的参数
echo $b; // 输出100 $b的值没变化
?>
4.3默认参数
<?php
//自定义一个函数person,用于打印一个人的属性
function person($name="张三", $age=20, $sex="男"){
echo "姓名:{$name}, 年龄:{$age}, 性别:{$sex} <br>";
}
person(); //全部使用默认参数
person("李四"); //第一个默认参数被覆盖,后面两个参数为默认
person("李四",22); //前两个默认参数被覆盖,后面一个参数为默认
person("李四",22,"女"); //三个默认参数都被覆盖
?>
4.4剩余参数
<?php
// 剩余参数:可变长参数
function sum3($a,$b,...$c){
return $a+$b+array_sum($c);
};
echo sum3(5,5,10,10,10),'<hr>';
总结:
今天讲的是函数的四种类型,函数的四种返回值和函数的四种参数。感觉还是有点头大。如果全都掌握,我认为还是有一定的难度的,所以,还是多加练习加强记忆。