函数(FUNCTION)

简介: 函数指完成某个功能的代码模块。PHP函数具有不支持重载,即自定义函数名不能以内置函数名相同、代码结构清晰,可重复多次调用、函数没调用时不执行、可以动态调用函数,即使用变量的值作为函数名等特点。
#动态调用函数实例
function abc(){
   echo "动态调用函数";
}
$n="abc";
$n();//输出 动态调用函数

函数分类

1、内置函数: php预定义的功能函数。
2、自定义函数:程序员自己定义的功能函数。

命名规范

1、字母或下划线开始,中间可包含数字
2、不区分大小写,但建议在调用时保持与定义时一致。

函数语法

function 函数名(参数1,参数2,,参数3,...){
     //功能代码
     return  //返回结果,后面一切代码都不再执行。
}

调用函数

1、不传参调用,函数名();
2、传参数调用, 函数名(参数1,参数2,…);

/**
 *设置的参数必须传值,否则报错,
 *一般传空字符串,避免此类错误。
 */
function name($a,$b,$c){//错误实例
    return $d=$a.$b.$c;
}
echo name('a','b',);

function name($a,$b,$c){//正确实例
    return $d=$a.$b.$c;

}
echo name('a','b',‘’);

递归函数

重复调用自身的函数,直到满足某个条件为止,注意条件避免死循环。

/**
 *应用实例:阶乘
 */
function jc($i){
    if($i==0||$i==1){
        return 1;
    }
    return $i*jc($i-1);
}
/**
 *应用实例:累加
 */
function sum($a){
    if($a==1){
        return 1;
  }
    return $a+sum($a-1);
}

扩展知识

function test(){
    echo 'abc';
}
function test2(){
    return 'abc';
}
echo '123'.test();    //结果:abc123 
echo '123'.test2();  //结果:123abc 

变量作用域与生命周期

变量作用的范围,分为局部变量和全局变量以及静态变量。

变量作用域 作用范围 生命周期
局部变量 函数内部 从声明变量到函数结束
全局变量 整个脚本,在函数体中需要使用全局变量,使用 global 关键字访问 从声明开始到文件结尾
静态变量 在函数退出时不会丢失值,并且再次调用函数时还能保留这个值;使用 static 关键字声明静态变量;

函数库的四种引用方式

函数库指多个功能函数的集合文件。

引用函数库的方式 说明
include() 当引入函数库文件里的代码执行报错时,不会立即停止代码执行
include_once() 当引入重复函数库时不会报错
require() 当引入函数库文件里的代码执行报错时,会立即停止代码执行
require_once() 当引入重复函数库时不会报错
目录
相关文章
|
15天前
|
存储 C++
【C++】string类的使用③(非成员函数重载Non-member function overloads)
这篇文章探讨了C++中`std::string`的`replace`和`swap`函数以及非成员函数重载。`replace`提供了多种方式替换字符串中的部分内容,包括使用字符串、子串、字符、字符数组和填充字符。`swap`函数用于交换两个`string`对象的内容,成员函数版本效率更高。非成员函数重载包括`operator+`实现字符串连接,关系运算符(如`==`, `<`等)用于比较字符串,以及`swap`非成员函数。此外,还介绍了`getline`函数,用于按指定分隔符从输入流中读取字符串。文章强调了非成员函数在特定情况下的作用,并给出了多个示例代码。
|
26天前
|
JavaScript 前端开发
JavaScript函数是代码复用的关键。使用`function`创建函数
【6月更文挑战第22天】JavaScript函数是代码复用的关键。使用`function`创建函数,如`function sayHello() {...}`或`function addNumbers(num1, num2) {...}`。调用函数如`sayHello()`执行其代码,传递参数按值进行。函数可通过`return`返回值,无返回值默认为`undefined`。理解函数对于模块化编程至关重要。
24 4
|
21天前
|
运维 负载均衡 Serverless
函数计算产品使用问题之yaml如果写多个function,可不可以yaml在构建的时候能构建多个函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
1月前
|
JSON 数据格式
setInterval函数的function与()=>区别——解决Cannot readproperty‘XXXXXXX‘of undefined异常
setInterval函数的function与()=>区别——解决Cannot readproperty‘XXXXXXX‘of undefined异常
14 0
|
2月前
|
JavaScript 前端开发
在JavaScript中,函数原型(Function Prototype)是一个特殊的对象
【5月更文挑战第11天】JavaScript中的函数原型是一个特殊对象,它为所有函数实例提供共享的方法和属性。每个函数在创建时都有一个`prototype`属性,指向原型对象。利用原型,我们可以向所有实例添加方法和属性,实现继承。例如,我们定义一个`Person`函数,向其原型添加`greet`方法,然后创建实例`john`和`jane`,它们都能调用这个方法。尽管可以直接在原型上添加方法,但推荐在构造函数内部定义以封装数据和逻辑。
35 2
|
1月前
|
JavaScript 编译器 前端开发
11.【TypeScript 教程】函数(Function)
11.【TypeScript 教程】函数(Function)
12 0
|
2月前
|
存储 算法 对象存储
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
35 1
|
2月前
|
存储
function(函数)
在 Lua 中,函数作为第一类值可存储于变量,如示例所示:`factorial1` 和 `factorial2` 存储相同函数。此外,函数可作为参数传递,如 `testFun` 接收一个表和一个匿名函数,该匿名函数在迭代中处理键值对,输出 `key1=val1` 和 `key2=val2`。
|
2月前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
|
2月前
|
Serverless 应用服务中间件 数据安全/隐私保护
Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。

热门文章

最新文章