Blogger Information
Blog 11
fans 0
comment 0
visits 9143
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
# 初识 PHP 函数
PHP新手学习记录
Original
787 people have browsed it

初识 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));
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:代码很工整
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post