博客列表 >phph函数声明、类型、返回值、参数、命名空间

phph函数声明、类型、返回值、参数、命名空间

努力努力再努力
努力努力再努力原创
2020年07月08日 11:46:452173浏览

一、函数的声明

  1. //函数的声明
  2. function Sum(int $a ,int $b):int
  3. {
  4. return $a *$b;
  5. };
  6. //函数的调用
  7. echo Sum(1,2) ,'<hr>';

二、函数的类型

1.自定义函数

  1. function getCount(float $a,float $b):float
  2. {
  3. return $a+$b;
  4. }
  5. echo getCount(1.5,4.5),'<hr>';

2.系统内置函数

  1. $str="函数调用机制,改进函数调用机制,通过优化参数传递环节,减少一些指令";
  2. //字符串截取 一个中文字符相当于三个字节
  3. echo substr($str,0,6),'<hr>';

3.可变函数

  1. $name='getCount'; //getCount()是上面自定义函数
  2. echo $name(1,2),'<hr>';

4.匿名函数

  1. $p =function(float $a,float $b){
  2. return $a+$b;
  3. };
  4. //匿名函数在'php'中也成为'闭包':可访问父作用域中的变量
  5. $c=10;
  6. $p =function(float $a,float $b) use ($c){
  7. return ($a+$b)*$c;
  8. };
  9. echo $p(1.2,3.3),'<hr>';
  10. //两个匿名函数嵌套
  11. $f=function(int $c){
  12. $p =function(float $a,float $b) use ($c) {
  13. return ($a+$b)*$c;
  14. };
  15. //返回函数
  16. return $p;
  17. };
  18. //调用
  19. echo $f(10)(1,2),'<hr>';

5.回调函数

  1. // array_map() 映射 将传入的数组根据函数进行处理并返回
  2. // 第一个参数是函数 第二个参数是需要异步处理的数组
  3. $arr=array_map(function($item){
  4. if( $item %2 ===0){ //求数组的偶数
  5. return $item;
  6. }
  7. },$data);
  8. var_dump($arr);
  9. //过滤掉array_map()处理的NULL值
  10. $arr_1=array_filter($arr,function($item){
  11. if(!empty($item)) return $item;
  12. });
  13. var_dump($arr_1);
  14. //将数组键值重新排列 array_values($arr)
  15. var_dump(array_values($arr_1));

三、函数的返回值

1.字符串拼接

  1. function demo01():string
  2. {
  3. $s='1';
  4. $m='成功';
  5. return $s.'<span style="color:red">'.$m.'</span>'.'<hr>';
  6. }
  7. echo demo01();

2.数组

  1. //通过数组的方式返回
  2. function demo02():array
  3. {
  4. $arr=array('s'=>'1','m'=>'成功');
  5. return $arr;
  6. }
  7. var_dump(demo02()) ;

3.json数据类型得字符串

  1. // json_encode($array) 将数组转换数据
  2. // json_decode($json,true) json还原成$array 第二个参数不加则返回一个对象
  3. function demo03():string
  4. {
  5. $arr=array('s'=>'1','m'=>'成功');
  6. return json_encode($arr);
  7. }
  8. echo demo03(),'<br>';
  9. // 还原数组
  10. $arr=json_decode(demo03());
  11. var_dump($arr);
  12. echo '<br>';
  13. $arr=json_decode(demo03(),true);
  14. var_dump($arr);
  15. echo '<hr>';

4.序列化方式

  1. // serialize()序列化 unserialize()反序列化
  2. echo serialize(123),'<br>';
  3. echo serialize('123'),'<br>';
  4. echo serialize(true),'<br>';
  5. echo serialize([1,2,3]),'<br>';
  6. function demo04():string
  7. {
  8. $arr=array('s'=>'1','m'=>'成功');
  9. return serialize($arr);
  10. }
  11. echo demo04(),'<br>';
  12. var_dump(unserialize(demo04()));
  13. echo '<hr>';

四、函数的参数

1.值参数

  1. function demo1(float $arg):float
  2. {
  3. return $arg;
  4. }
  5. echo demo1(1).'<hr>';

2.引用参数

  1. function demo2(float &$arg):float
  2. {
  3. return $arg*=2;
  4. }
  5. $val=120;
  6. echo $val.'<br>';
  7. echo demo2($val).'<br>';
  8. echo $val.'<hr>';

3.默认参数

  1. function demo3(int $arg,int $a=10):int
  2. {
  3. return $arg*=$a;
  4. }
  5. echo demo3(10).'<hr>';

4.剩余参数

  1. function demo4(...$args):int
  2. {
  3. return array_sum($args);
  4. }
  5. echo demo4(1,2,3,4,5),'<br>';
  6. echo demo4(1,2,3,4,5,6,7).'<br>';
  7. $arr=[1,2,3,4,5,6,7,8];
  8. $res=demo4(...$arr);
  9. echo $res,'<hr>';

五、命名空间namespace

  1. namespace btn1{
  2. function dmmo(){
  3. return '1234';
  4. }
  5. }
  6. //全局(默认)空间 执行程序的入口
  7. namespace {
  8. function demo(){
  9. };
  10. echo \btn1\dmmo();
  11. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议