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