Blogger Information
Blog 17
fans 1
comment 0
visits 14612
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP函数基础
邱世家的博客
Original
794 people have browsed it

函数的声明与调用

  1. // 函数的声明与调用
  2. //函数基本语法:
  3. /*
  4. function 函数名(参数){
  5. 要执行得代码,可以一行可以多行可以为空;
  6. }
  7. */
  8. // function 声明一个函数
  9. function sum(int $a, int$b):int{
  10. // return: 将函数的执行结果返回到调用者
  11. return $a + $b;
  12. }
  13. // 此处返回3
  14. echo sum(1,2);

函数得类型:

  • 自定义函数:开发者自己定义函数名字 以及参数等
  1. function sum1(int $a, int$b):int{
  2. return $a * $b;
  3. }
  4. // 此处返回200
  5. echo sum1(10,20),'<hr>';
  • 系统函数:
    1. $str = "使用关键字可以模拟优化器执行SQL查询语句";
    2. // 字符串截取
    3. // 按照字节截取substr();,UTF-8:一个汉字三个字节
    4. //此处返回 :使用
    5. echo substr($str, 0, 6),'<br>';
    6. // 字符串截取mb_substr()此处返回:使用关键字可
    7. echo mb_substr($str, 0, 6),'<hr>';
  • 可变参数:
    1. // 可变参数:
    2. function add(int $a, int$b):int{
    3. return $a + $b;
    4. }
    5. // 声明变量值为函数名称
    6. $myadd = 'add';
    7. // 两者都输出30
    8. echo add(10,20),'<br>';
    9. echo $myadd(10,20),'<hr>';
  • 匿名函数:没有函数名的函数,也叫闭包函数
    1. // 语法:function (参数列表){....}; 要带着结束符
    2. $func = function (int $a, int$b):int{
    3. return $a + $b;
    4. };
    5. //输出100
    6. echo $func(99,1),'<br>';
    7. // use(外部作用域的变量)用闭包的方式访问外部作用域中的变量
    8. // 全局变量
    9. $p = 10;
    10. $func = function (int $a, int $b) use ($p):int{
    11. return $a + $b + $p;
    12. };
    13. //输出110
    14. echo $func(99,1),'<hr>

    函数返回值

  • 函数肯定有返回值,而且只能返回单一得值,但是可以通过多种方式返回多值
  1. function f(){
  2. }
  3. // 此处返回null
  4. var_dump (f());
  • 字符串拼接:用.
  1. function demo(){
  2. $name = '乔峰';
  3. $kung_fu = 18;
  4. return $name .','. $kung_fu;
  5. }
  6. // 输出 乔峰,18
  7. echo demo(),'<hr>';
  • 通过数组方式返回
    1. // 数组返回
    2. function demo2():array{
    3. $name = '乔峰';
    4. $kung_fu = 18;
    5. return ['name'=>$name,'kung_fu'=>$kung_fu];
    6. }
    7. // 输出 乔峰
    8. echo demo2()['name'],'<hr>';
  • json:是js对象字面量的字符串表示
    1. function demo3():string{
    2. $name = '乔峰';
    3. $kung_fu = 18;
    4. return json_encode(['name'=>$name,'kung_fu'=>$kung_fu]) ;
    5. }
    6. //此处返回{"name":"\u4e54\u5cf0","kung_fu":18}
    7. //"name""kung_fu" 对象的属性
    8. echo demo3(),'<hr>';
  • 序列化得方式返回
  1. // 此处返回:i:123; i代表一个整数,123代表整数的值
  2. echo serialize(123),'<br>';
  3. // 此处返回:s:3:"123"; s代表字符串,3代表字符串的长度,“123”字符串内容
  4. echo serialize('123'),'<br>';
  5. // 此处返回:b:1; b代表布尔值,1代表true 真
  6. echo serialize(true),'<br>';
  7. // 此处返回:a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}
  8. // a代表数组 3 代表里面有三个值 大括号中的i代表数值的类型是整数
  9. echo serialize([1,2,3]),'<hr>';
  10. function demo4():string{
  11. $name = '乔峰';
  12. $kung_fu = 18;
  13. return serialize(['name'=>$name,'kung_fu'=>$kung_fu]) ;
  14. }
  15. echo '序列化方式' , demo4(),'<hr>';

函数得参数

  1. // 默认参数
  2. function demo(int $a, int $b=1):int
  3. {
  4. return $a + $b;
  5. }
  6. echo demo(1);
  7. echo '<hr>';
  8. // 值参数
  9. function demo1(int $a):int
  10. {
  11. return $a *=2;
  12. }
  13. // 写$b = $a;单纯为了自己好理解 不知道写了对不对
  14. $b = $a;
  15. $b =10;
  16. echo demo1($b),'<br>';
  17. echo $b,'<hr>';
  18. // 引用传递
  19. function demo2(int &$a):int
  20. {
  21. return $a *=2;
  22. }
  23. // 写$b = $a;单纯为了自己好理解 不知道写了对不对
  24. $b = $a;
  25. $b =10;
  26. echo demo2($b),'<br>';
  27. echo $b;
  28. echo '<hr>';
  29. // 剩余参数
  30. // 当调用得参数 数量不确定时 用...
  31. function demo3(...$y)
  32. {
  33. return array_sum($y);
  34. }
  35. $res = demo3(1,2,3,4,5,6,7);
  36. print_r($res);

函数的匿名空间

  • 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误
  • 要注意的是,当前脚本文件的第一个命名空间前面不能有任何代码,命名空间使用关键字namespace,
  1. // 函数得命名空间
  2. namespace ns1{
  3. // ns1 里面的demo1
  4. function demo1(){
  5. return __FUNCTION__;
  6. }
  7. }
  8. //全局空间:匿名空间,默认空间
  9. namespace {
  10. //全局空间下面的demo1
  11. function demo1(){}
  12. echo \ns1\demo1();
  13. }

总结:这一堂课是听得最迷糊的一堂课,感觉完全没有理解。

Correcting teacher:GuanhuiGuanhui

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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!