函数(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() 当引入重复函数库时不会报错
目录
相关文章
|
2天前
|
JavaScript 前端开发
在JavaScript中,函数原型(Function Prototype)是一个特殊的对象
JavaScript中的函数原型是一个特殊对象,它为所有函数实例提供共享的方法和属性。每个函数在创建时都有一个`prototype`属性,指向原型对象。利用原型,我们可以向所有实例添加方法和属性,实现继承。例如,我们定义一个`Person`函数,向其原型添加`greet`方法,然后创建实例`john`和`jane`,它们都能调用这个方法。尽管可以直接在原型上添加方法,但推荐在构造函数内部定义以封装数据和逻辑。
8 2
|
5天前
|
存储 算法 对象存储
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
14 1
|
12天前
|
存储
function(函数)
在 Lua 中,函数作为第一类值可存储于变量,如示例所示:`factorial1` 和 `factorial2` 存储相同函数。此外,函数可作为参数传递,如 `testFun` 接收一个表和一个匿名函数,该匿名函数在迭代中处理键值对,输出 `key1=val1` 和 `key2=val2`。
|
14天前
|
JavaScript 前端开发
【专栏】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表
【4月更文挑战第29天】`Function.prototype.apply` 在JavaScript中用于动态设定函数上下文(`this`)和参数列表。它接受两个参数:上下文对象和参数数组。理解`apply`有助于深入JS运行机制。文章分三部分探讨其原理:基本概念和用法、工作原理详解、实际应用与注意事项。在应用中要注意性能、参数类型和兼容性问题。`apply`可用于动态改变上下文、传递参数数组,甚至模拟其他语言的调用方式。通过深入理解`apply`,能提升代码质量和效率。
|
15天前
|
Serverless 应用服务中间件 数据安全/隐私保护
Serverless 应用引擎操作报错合集之在阿里函数计算中,函数执行超时,报错Function time out after如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
19 4
|
1月前
|
资源调度 Serverless 计算机视觉
高斯函数 Gaussian Function
**高斯函数,或称正态分布,以数学家高斯命名,具有钟形曲线特征。关键参数包括期望值μ(决定分布中心)和标准差σ(影响分布的宽度)。当μ=0且σ²=1时,分布为标准正态分布。高斯函数广泛应用于统计学、信号处理和图像处理,如高斯滤波器用于图像模糊。其概率密度函数为e^(-x²/2σ²),积分结果为误差函数。在编程中,高斯函数常用于创建二维权重矩阵进行图像的加权平均,实现模糊效果。
20 1
|
2月前
|
算法 Serverless C语言
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
35 1
|
2月前
|
存储 安全 编译器
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门使用教程
34 0
|
2月前
|
SQL Oracle 关系型数据库
Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
【2月更文挑战第17天】Flink的表值函数(Table-Valued Function,TVF)是一种返回值是一张表的函数
25 1
|
4月前
|
存储 SQL 安全
函数(Function)和存储过程(Stored Procedure)的区别(小白情感版)
函数(Function)和存储过程(Stored Procedure)的区别(小白情感版)
46 0

热门文章

最新文章