博主信息
博文 11
粉丝 0
评论 0
访问量 11793
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
# 初识 PHP 函数
PHP新手学习记录
原创
970人浏览过

初识 PHP 函数

函数的四种类型

  1. 自定义函数
  1. // 求两个数的余数
  2. function remainder(float $x, float $y) : string // 这里使用 flaot, int 都会报错
  3. {
  4. return "$x % $y = " . ($x % $y);
  5. }
  6. var_dump(remainder(7,4)); // string(9) "7 % 4 = 3"
  1. 系统函数
  1. // mb_strlen(): 是系统函数,不需要定义可以直接使用,用来获取字符串的长度
  2. // 多字节、空格和英文被统计为 1
  3. $str = '中国 china';
  4. var_dump(mb_strlen($str)); //int(8)
  1. 可变函数

初步的理解是函数名和方法名可以使用变量来定义,PHP 将寻找与变量名同名的函数,并尝试执行。

  1. function func() {
  2. echo "\$var = 'func',所以 ";
  3. echo '$var() 等同于 func()';
  4. }
  5. $var = 'func';
  6. $var(); // 可以正常调用 func() 函数
  1. 匿名函数

可以把一个没有名称的函数赋值给一个变量

  1. $hello = function ($name) {
  2. return "Hello $name ";
  3. };
  4. echo $hello('world'); // Hello world
  5. echo $hello('php'); // Hello php

函数多值返回的四种形式

函数返回值的原则是单值返回,想要返回多值可以借助以下四种方法:

  1. 字符串拼接
  2. 把返回值赋值为数组
  3. JSON 字符串
  4. 序列化 字符串

  5. 字符串拼接方式

    1. function demo1($surname, $name) {
    2. return '姓:' . $surname . ',名:' . $name;
    3. }
    4. echo demo1('李', '小龙'); // 姓:李,名:小龙
  6. 把返回值赋值为数组

    1. function demo2($surname, $name) : array
    2. {
    3. return ['姓氏'=>$surname, '名字'=>$name];
    4. }
    5. printf('<pre>%s</pre>', print_r(demo2('李', '四'), true));

    运行结果:

    1. Array
    2. (
    3. [姓氏] =>
    4. [名字] =>
    5. )
  7. 返回值 JSON

  1. function demo3($surname, $name) : string
  2. {
  3. return json_encode(['姓氏'=>$surname, '名字'=>$name]);
  4. }
  5. $date = json_decode(demo3('李', '小龙'));
  6. printf('<pre>%s</pre>', print_r($date, true));

运行结果:

  1. stdClass Object
  2. (
  3. [姓氏] =>
  4. [名字] => 小龙
  5. )
  1. 通过 serialize 函数返回多个值
  1. function demo4($surname, $name) : string
  2. {
  3. return serialize(['姓氏'=>$surname, '名字'=>$name]);
  4. }
  5. $date = unserialize(demo4('张', '三'));
  6. printf('<pre>%s</pre>', print_r($date, true));

运行结果:

  1. Array
  2. (
  3. [姓氏] =>
  4. [名字] =>
  5. )

函数的四种参数

  1. 值参数:$job, 职业
  2. 引用参数: &$name, 姓名
  3. 默认参数: $sex, 性别
  1. function person($job, &$name, $sex = '男')
  2. {
  3. return ['职业'=>$job, '姓名'=>$name='李四', '性别'=>$sex];
  4. }
  5. $name = '张三';
  6. $arr = person('律师', $name);
  7. printf('<pre>%s</pre>', print_r($arr, true));
  8. echo $name;

打印结果

  1. Array
  2. (
  3. [职业] => 律师
  4. [姓名] => 李四
  5. [性别] =>
  6. )
  7. 李四
  1. 剩余参数简化

符号为三个点号 “ … ”,放在形参中,表示 收集 ,用在实参中表示 展开

  1. function test(...$args)
  2. {
  3. // 计算不定参数的乘积
  4. return array_product($args); // int(120)
  5. // 计算不定参数的和
  6. // return array_sum($args); //int(15)
  7. }
  8. $arr = [1,2,3,4,5];
  9. // 如果这里没有 ... 符号,会只计算第一个参数的值
  10. // 加上 ... 后,会展开 $arr 中的所有参数,并计算乘积或和
  11. var_dump(test(...$arr));
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:代码很工整
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学