博客列表 >PHP函数的使用方法

PHP函数的使用方法

Dong.
Dong.原创
2020年07月08日 17:20:091106浏览

函数的含义:

  • 代码复用的重要手段
  • 函数名称以字母或下划线开头(不能以数字开头)
  • 函数的名称应该提示出它的功能

1.函数的声明与调用

1.1 函数的声明语法

  1. 使用function进行声明:
  2. function 函数名称的标识符(参数列表) {
  3.       函数体:(由一条或多条语句组成,也可以为空)
  4. }
  5. 标识符:必须满足php标识符的基本要求,只允许字母数字或下划线且不允许用数字开头

1.2函数的调用

  1. <?php
  2. // 函数的声明与调用
  3. function sum (float $a,float $b){
  4. return $a + $b;
  5. }
  6. echo sum (5,15);

输出结果:

2.函数的类型

2.1 用户自定义函数

是由用户自定义函数以及参数

  1. <?php
  2. // 用户自定义函数
  3. // 自定义函数以及参数
  4. function sum(float $count,float $money){
  5. return $count*$money;
  6. }
  7. echo sum(10,299);

输出结果:

2.2 系统函数

为系统自带的函数,无需定义可以直接使用;(举以下几个例子)

  1. <?php
  2. $str = "php中文网";
  3. echo mb_substr($str, 0, 6);
  4. echo '<hr>';
  5. // rand():得到一个随机数; 例如:echo rand(1,10);
  6. echo rand(1,10) . '<hr>';
  7. // time():获取当前时间对应的时间戳;
  8. echo time().'<hr>';
  9. //strotlower()所有字符都转为小写(仅针对英文字母)
  10. echo strtolower('ASDFGHJKL').'<hr>';
  11. //round()将数字四舍五入
  12. echo round(5.6).'<br>';
  13. echo round(5.2).'<hr>';

输出结果:

这里只是一部分,系统函数还有很多,如果需要可前往:php中文网 查询

2.3 可变函数

  1. <?php
  2. // 可变函数
  3. function sum (float $a,float $b){
  4. return $a + $b;
  5. }
  6. // 将函数定义一个变量名称
  7. $sum1 = 'sum';
  8. // 使用可变变量输出
  9. echo $sum1(5,15).'<hr>';
  10. // 再用函数输出结果相同
  11. echo sum(5,15);

输出结果:

2.4 匿名函数

也被称之为‘闭包’;

  1. <?php
  2. // 匿名函数
  3. $sum = function(float $a,float $b):float {
  4. return $a + $b;
  5. };
  6. echo $sum(5,15);
  7. echo '<hr>';
  8. // 闭包可以从父作用域中继承变量
  9. // 使用use()继承夫作用域变量
  10. $sum1 = 'php.cn';
  11. $sum2 = function() use($sum1) {
  12. return $sum1;
  13. };
  14. echo $sum2();

输出结果:

3.函数的返回(重点在于多值返回)

3.1 通过字符串拼装返回多值

  1. <?php
  2. // 字符串拼装
  3. function demo1(): string{
  4. $name = 'peter';
  5. $age = 20;
  6. return $name . ',' . '年龄:' . $age;
  7. }
  8. echo demo1();

输出结果:

3.2 通过数组的方式返回多值

  1. <?php
  2. // 数组
  3. function demo(): array
  4. {
  5. $id = 1;
  6. $username= 'peter';
  7. return ['id'=>$id, 'name'=>$username];
  8. }
  9. print_r(demo());
  10. echo '<hr>';
  11. // 当id等于1时则返回name反则返回验证失败
  12. echo demo()['id'] === 1 ? demo()['name'] : '验证失败';

输出结果:

3.3 通过json的方式返回多值

json:是js对象字面量的字符串表示,使用方法:json_code

  1. <?php
  2. // json方式
  3. function demo1(): string{
  4. $name = 'peter';
  5. $age = 20;
  6. return json_encode(['name'=>$name,'age'=>$age]);
  7. }
  8. echo demo1();

输出结果:

3.4 序列话方式返回多值

  1. <?php
  2. //序列化
  3. function demo1(): string{
  4. $name = 'peter';
  5. $age = 20;
  6. return serialize(['name'=>$name,'age'=>$age]);
  7. }
  8. echo demo1();
  9. //第1个元素键名为name为string类型,长度是4,值为string类型,长度是5,值为‘peter’;
  10. //第2个元素键名为age为string类型,长度是3,值为int类型,长度是3,值为20;
  11. echo '<hr>';
  12. // 反序列化: 还原
  13. print_r(unserialize(demo1()));

输出结果:

4.函数中的参数

4.1 值参数(默认)

  1. <?php
  2. // 函数的参数
  3. // 1. 值参数,这是默认
  4. function demo(float $count): float
  5. {
  6. // +20
  7. return $count += 20;
  8. }
  9. $nav = 10;
  10. echo demo($nav), '<hr>';
  11. echo $nav;

输出结果:

4.2 引用参数

函数内部对参数的更新会映射到外部实际参数

  1. <?php
  2. // 函数的参数
  3. // 引用参数
  4. function demo(float &$count): float
  5. {
  6. // 函数内部对参数的更新会实时映射到外部实际参数
  7. // +20
  8. return $count += 20;
  9. }
  10. $nav = 10;
  11. echo demo($nav), '<hr>';
  12. echo $nav;

输出结果:

4.3 默认参数

凡是有默认值的参数,必须写到没有默认值参数的后面

  1. <?php
  2. // 函数的参数
  3. // 默认参数
  4. // 凡是有默认值的参数,必须写到没有默认值参数的后面
  5. function demo(float $a, float $b, string $opt = '+'){
  6. $i = 0;
  7. switch ($opt) {
  8. case '+':
  9. $i = "$a + $b = " . ($a + $b);
  10. break;
  11. case '-':
  12. $i = "$a - $b = " . ($a - $b);
  13. break;
  14. case '*':
  15. $i = "$a * $b = " . ($a * $b);
  16. break;
  17. case '/':
  18. $i = "$a / $b = " . ($a / $b);
  19. break;
  20. default:
  21. $i = '非法操作符';
  22. }
  23. return $i;
  24. }
  25. echo demo(15,10),'<hr>';
  26. echo demo(10,20, '*'),'<hr>';
  27. // 使用其他字符,未识别提示非法操作字符
  28. echo demo(10,20, '@'),'<hr>';

输出结果:

4.4 剩余参数

  1. <?php
  2. // 函数的参数
  3. // 例如:一个数量不固定的数求和,参数前面加...
  4. function demo(...$num)
  5. {
  6. //array_sum为数组求和函数
  7. return array_sum($num);
  8. }
  9. // 定义数组
  10. $arr = [1,3,5,7,9,11];
  11. // 无论数组有多少个,全部进行计算
  12. $res = demo(...$arr);
  13. echo $res;

输出结果:

5. 函数的命名空间

注释:只要有一个代码用到命名空间那么所有代码都要用到命名空间。

  1. <?php
  2. // 命名空间
  3. namespace ns1 {
  4. function demo(){
  5. return '空间1';
  6. }
  7. }
  8. namespace ns2 {
  9. function demo1(){
  10. return '空间2';
  11. }
  12. }
  13. // 全局空间: 匿名空间,默认空间
  14. namespace {
  15. function demo1(){}
  16. echo ns1\demo();
  17. echo '<br>';
  18. echo ns2\demo1();
  19. }

输出结果:

总结

  • 学习了函数的类型以及函数的返回值,以及一些系统函数,后续可以查找手册了解;
  • 了解了函数中的一些参数;
  • 以及函数的命名空间,以及命名规范;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议