博客列表 >PHP函数的类型,参数,返回值,相关示例

PHP函数的类型,参数,返回值,相关示例

大A
大A原创
2020年04月21日 02:27:14674浏览

函数的四种类型

1,自定义函数

  1. function demo1($a,$b)
  2. {
  3. return $a+$b;
  4. }
  5. echo demo1(1,2).'<hr>';

2,系统函数,系统自带的函数无需定义可以直接使用,例如:isset()函数

  1. $text='www.php.cn';
  2. if (isset($text)):
  3. echo '$text的值是'.$text.'<hr>';
  4. else:
  5. echo '$text的值是空的'.'<hr>';
  6. endif;

3,可变函数,将一个变量赋值为函数然后调用,例如:

  1. //创建一个函数demo2
  2. function demo2($a,$b)
  3. {
  4. return '当前函数是:'.__FUNCTION__.'<br>结果是:'.($a+$b);
  5. }
  6. //创建一个函数demo3
  7. function demo3($a,$b)
  8. {
  9. return '当前函数是:'.__FUNCTION__.'<br>结果是:'.$a*$b;
  10. }
  11. //将'demo2'函数赋值给$func
  12. $func='demo2';
  13. //赋值后的$func相当于'demo2'
  14. echo $func(5,6).'<hr>';
  15. //将'demo3'函数赋值给$func
  16. $func='demo3';
  17. //这时发现同样运行$func(5,6),因为$func值不同所执行的函数与结果也不同
  18. echo $func(5,6).'<hr>';

4,匿名函数,没有函数名的函数,需要赋值到变量来使用,例如:

  1. //匿名函数可以使用'use()'命令引用公共变量.
  2. $c=100;
  3. $func=function($a,$b)use($c){return $a+$b+$c;};
  4. echo $func(5,8).'<hr>';

函数多值返回的四种形式

1,字符串拼接,将多个字符串结果拼接输出

  1. function demo1($a,$b)
  2. {
  3. return $a.'|'.$b;
  4. }
  5. echo demo1('php中文网','www.php.cn').'<hr>';

2,用数组返回结果

  1. function demo2($a,$b)
  2. {
  3. //将要返回的结果装入数组中
  4. $c=['name'=>$a,'URL'=>$b];
  5. //返回数组
  6. return $c;
  7. }
  8. echo '<pre>'. print_r (demo2('php中文网','www.php.cn'),true).'<pre><hr>';

3,用json字符串的方式返回结果

  1. function demo3($a,$b)
  2. {
  3. //将要返回的结果装入数组中
  4. $c=['name'=>$a,'URL'=>$b];
  5. //返回json字符串,设置编码模式为:JSON_UNESCAPED_UNICODE
  6. return json_encode($c,JSON_UNESCAPED_UNICODE);
  7. }
  8. $result= demo3('php中文网','www.php.cn');
  9. echo $result.'<br>';
  10. //将json转为数组
  11. $arr=json_decode($result,true);
  12. //显示结果
  13. echo '<pre>'. print_r ($arr,true).'<pre><hr>';

4,用序列化字符串的方式返回

  1. function demo4($a,$b)
  2. {
  3. //将要返回的结果装入数组中
  4. $c=['name'=>$a,'URL'=>$b];
  5. //将数组转换为序列化字符串返回
  6. return serialize($c);
  7. }
  8. //运行函数
  9. $result= demo4('php中文网','www.php.cn');
  10. //显示结果
  11. echo $result.'<br>';
  12. //将序列化的结果转换为数组
  13. echo '<pre>'. print_r (unserialize($result),true).'<pre><hr>';

函数的四种参数

1,值参数

  1. function demo1($a,$b)
  2. {
  3. return $a+$b;
  4. }
  5. echo demo1(1,2).'<hr>';

2,引用参数

  1. $c=100;
  2. //将第二个参数设置成引用参数
  3. function demo2($a,&$b)
  4. {
  5. return $b+=$a;
  6. }
  7. //将$c传入到第二个参数
  8. demo2(50,$c);
  9. //显示$c的值,这时$c的值已经改变为150
  10. echo $c.'<hr>';

3,默认参数

  1. //将$c设置为默认参数初始值为100
  2. function demo3($a,$b,$c=100)
  3. {
  4. return $a+$b+$c;
  5. }
  6. //当demo3的第三个参数未设置时$c的值为100,所以结果为103
  7. echo demo3(1,2).'<br>';
  8. //也可设置默认参数的值,此时$c的值为10,所以结果为13
  9. echo demo3(1,2,10).'<hr>';

4,剩余参数

  1. //第一种方法
  2. function demo4()
  3. { //获取传入参数所组成的数组
  4. $arr=func_get_args();
  5. //遍历数组求和
  6. foreach ($arr as $key => $value) {
  7. $result+=$value;
  8. }
  9. //返回参数的总和
  10. return $result;
  11. }
  12. //demo4可以传入任意数量的参数
  13. echo demo4(1,2,3,4,5,6,7,8,9,10).'<br>';
  14. //第二种方法
  15. $arr=[1,2,3,4,5,6,7,8,9,100];
  16. //'...'将传入的参数打包成数组
  17. function demo5(...$arr)
  18. {
  19. return array_sum($arr);
  20. }
  21. //'...'可以将数组转换为普通格式
  22. echo demo5(...$arr).'<br>';
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议