博客列表 ># 初识 PHP 函数

# 初识 PHP 函数

PHP新手学习记录
PHP新手学习记录原创
2020年04月21日 15:17:01786浏览

初识 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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议