Blogger Information
Blog 40
fans 0
comment 1
visits 39683
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP函数的使用方法
Dong.
Original
1105 people have browsed it

函数的含义:

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

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. }

输出结果:

总结

  • 学习了函数的类型以及函数的返回值,以及一些系统函数,后续可以查找手册了解;
  • 了解了函数中的一些参数;
  • 以及函数的命名空间,以及命名规范;
Correcting teacher:GuanhuiGuanhui

Correction status:qualified

Teacher's comments:PHP自带的函数不需要死记硬背,但是要用的时候要知道有这个函数。
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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!