博客列表 >php函数

php函数

ROC-Y
ROC-Y原创
2020年04月26日 19:48:25634浏览

函数定义

  1. function 函数名(参数):返回值类型{
  2. 算法描述;
  3. return:返回值;
  4. }

系统函数举例:

  1. <?php
  2. echo rand(); //返回随机整数
  3. echo "<br>";
  4. echo rand(1000,9999);//返回四位随机整数
  5. echo "<br>";
  6. $str = "学习php哈哈";
  7. echo mb_substr($str,1,5);//字符串截取

可变函数

  1. <?php
  2. function example(int $a ){
  3. return $a *=$a;
  4. }
  5. $func = 'example';//函数别名
  6. echo $func(2);

匿名函数

  1. <?php
  2. // 定义一个匿名函数,将其赋值给变量$fuc,方便使用
  3. //同时演示匿名函数通过use()使用全局变量
  4. $b = 10;
  5. $fuc = function (int $a ) use ($b): int {
  6. //返回$a 的绝对值
  7. return abs($a * $b);
  8. };
  9. echo $fuc(-10);

返回值也是函数的情况下,注意调用传参的位置顺序

  1. <?php
  2. // 定义一个匿名函数,将其赋值给变量$fuc,方便使用
  3. //同时演示匿名函数通过use()使用全局变量
  4. $b = 10;
  5. $fuc = function (int $a ) use($b) {
  6. //返回$a 的绝对值
  7. return function (int $g ) use ($a,$b) {
  8. return abs( $a * $b) * $g ;
  9. };
  10. };
  11. //先通过$fuc(-10)得到内部的匿名函数,继续传$g=30调用
  12. echo $fuc(-10)(30);

返回值

  • 原则:单返回值

1、一般返回

  • 直接return返回一个基本类型或者字符串

2、返回数组

  1. <?php
  2. function funArray(){
  3. $age = 11;
  4. $name = "php";
  5. $num = "320";
  6. //通过数组返回
  7. return [ 'age'=>$age,'name'=>$name,'num' => $num];
  8. }
  9. var_dump((funArray()));

3、json返回

  1. <?php
  2. function funArray(){
  3. $age = 11;
  4. $name = "php";
  5. $num = "320";
  6. //存入数组
  7. $arry = [ 'age'=>$age,'name'=>$name,'num' => $num];
  8. //将数组转为json
  9. return json_encode($arry);
  10. }
  11. var_dump((funArray()));
  12. echo '<hr>';
  13. $str = funArray();
  14. //将json字符串解析
  15. //对象
  16. var_dump(json_decode($str));
  17. echo '<hr>';
  18. //数组
  19. var_dump(json_decode($str,true));

4、序列化多值返回

  1. <?php
  2. // 通过序列化返回多个值
  3. function funArray(){
  4. $age = 11;
  5. $name = "php";
  6. $num = "320";
  7. $arry = [ 'age'=>$age,'name'=>$name,'num' => $num];
  8. //将数组转为序列返回
  9. return serialize($arry);
  10. }
  11. var_dump((funArray()));
  12. echo '<hr>';
  13. $str = funArray();
  14. //反序列化,将结果转为可用的数组
  15. var_dump(unserialize($str));
  16. echo '<hr>';

参数

1、一般的名称个数和类型声明参数

2、引用传递

  • 通过取地址符&声明,改变被传入参数指向的地址存储的值
  1. <?php
  2. function change(int &$value) {
  3. //将value执行的地址存储的值平方
  4. $value *= $value;
  5. }
  6. $a = 30;
  7. change($a);
  8. //变量a执行的地址存储的值不再是30,而是900
  9. echo $a;

3、默认参数

  1. <?php
  2. // $n 为默认参数,默认参数要放在后面,
  3. function power($x, $n=2){
  4. $s = 1;
  5. while ($n > 0){
  6. $n = $n - 1;
  7. $s = $s * $x;
  8. }
  9. return $s;
  10. }
  11. // 当函数只给一个值的时候,默认n=2
  12. echo power(5);
  13. echo '<hr>';
  14. //如果给2个参数,则第二个参数赋值给n
  15. echo power(3,3);

4、剩余参数

  1. <?php
  2. function infor(...$args){
  3. //func_get_arg()和func_get_args()可以返回参数当前的值
  4. $arry= func_get_args($args);
  5. //获取索引为1的参数值
  6. $arg= func_get_arg(1);
  7. echo $arg;
  8. echo '<hr>';
  9. return $arry;
  10. }
  11. //直接传入参数
  12. var_dump(infor('男','50kg' ));
  13. echo '<hr>';
  14. //组装一个数组传入
  15. $arry1 = ['张三',20];
  16. var_dump(infor(...$arry1));

总结

  • 函数的定义,注意命名的通用规范,使用驼峰hellowWorld,或者蛇形hello_world
  • 函数的返回值,单值返回,或者组装成数组,json序列化返回
  • 函数的参数形式,可以明确申明,或者使用默认参数,或者剩余参数
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议