Blogger Information
Blog 8
fans 0
comment 0
visits 8390
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
phph函数声明、类型、返回值、参数、命名空间
努力努力再努力
Original
2174 people have browsed it

一、函数的声明

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