学习PHP函数

PHP最初是面向过程语言,有很多内置函数,比如处理字符串、处理数组的函数等。

除了内置函数,我们还需要了解如何自定义函数,函数一个可以实现功能复用的代买块。

函数是一组功能的集合,可以复用。

一、函数定义

	function myFun(a,b=2){
 //echo "fun";
		return a*b;
 }
 $c=myFun(1,2);
 echo $c;

二、函数的参数

普通变量

 function fun($a){
 }
 默认值得变量 
		myFun(a,b=2)
 引用变量
 function fun(&$a){
 }

可变数量的参数列表

PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数 func_num_args(),func_get_arg(),和 func_get_args() 。

 <?php
 function sum(...$numbers) {
     $acc = 0;
		    foreach (numbers as n) {
 acc += n;
     }
     return $acc;
 }
 function sum() {
     $acc = 0;
     foreach (func_get_args() as $n) {
 acc += n;
     }
     return $acc;
 }
 echo sum(1, 2, 3, 4);
 ?> 

三、返回值

return 可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。

返回值可以返回各类数类型

四、可变函数

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。

 <?php 
 function foo() {
     echo "In foo()<br />\n";
 }
 $func = 'foo';
 $func(); 
 ?>

五、匿名函数

匿名函数也叫闭包函数,允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。

 <?php
 echo preg_replace_callback('~-([a-z])~', function ($match) {
     return strtoupper($match[1]);
 }, 'hello-world');
 greet = function(name)
 {
     printf("Hello %s\r\n", $name);
 }; 
 $greet('World');
 $message = 'world';
 example = function (arg) use (
			    var_dump(arg . ' ' . message);
 };
 $example("hello");
 ?>

本文分享自微信公众号 - 老雷PHP全栈开发(L362606856),作者:雷日锦

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 认识PHP函数

    PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数 fun...

    老雷PHP全栈开发
  • PHP类与对象

    面向对象(Object Oriented,OO)其是以对象模型为基础进行的抽象过程,并在应用过程中形成了描述自己的抽象概念定义,包括对象、类、封装、继承以及多...

    老雷PHP全栈开发
  • Js基础教程之函数

    1.不在任何函数内定义的变量就具有全局作用域。实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性。

    老雷PHP全栈开发
  • 认识PHP函数

    PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数 fun...

    老雷PHP全栈开发
  • javascript中那些折磨人的面试题

    前端工程师有时候面试时会遇到一类面试官,他们问的问题对于语言本身非常较真儿,往往不是候选人可能期待的面向实际的问题(有些候选人强调能干活就行,至于知不知道其中缘...

    前端博客 : alili.tech
  • 理解JavaScript立即执行函数

    立即执行函数通常包含两种使用格式,具体使用那一种风格可以根据个人习惯和团队规范选择:

    伯爵
  • ES6--函数的扩展

    但上例中y对应的值如果是false的话,该赋值就不起作用了,例如y是''空字符串:

    Clearlove
  • 微生活时光机:去项目中挖掘JS模块化简史

    让我们把眼光投向微生活各个时期项目中的 JS 代码,看一看时代在其中投下的烙印,也许只是管中窥豹、走马观花,但通过其组织形式的异同,或可一瞥 JS 模块化层面的...

    江米小枣
  • JavaScript闭包与箭头函数

    用户1203875
  • Elasticsearch Javascript API增删改查

    查询 根据索引、类型、id进行查询: client.get({ index:'myindex', type:'mytype', ...

    用户1154259

扫码关注云+社区

领取腾讯云代金券