函数(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() 当引入重复函数库时不会报错
目录
相关文章
|
7天前
|
中间件 Docker Python
【Azure Function】FTP上传了Python Function文件后,无法在门户页面加载函数的问题
通过FTP上传Python Function至Azure云后,出现函数列表无法加载的问题。经排查,发现是由于`requirements.txt`中的依赖包未被正确安装。解决方法为:在本地安装依赖包到`.python_packages/lib/site-packages`目录,再将该目录内容上传至云上的`wwwroot`目录,并重启应用。最终成功加载函数列表。
|
1月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新特性,与传统函数相比,它有更简洁的语法,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。箭头函数不适用于构造函数,不能使用new关键字调用。
|
1月前
|
数据可视化 开发者 索引
详解Wireshark LUA插件函数:function p_myproto.dissector(buffer, pinfo, tree)
在 Wireshark 中,LUA 插件通过 `function p_myproto.dissector(buffer, pinfo, tree)` 扩展协议解析能力,解析自定义应用层协议。参数 `buffer` 是 `PacketBuffer` 类型,表示原始数据包内容;`pinfo` 是 `ProtoInfo` 类型,包含数据包元信息(如 IP 地址、协议类型等);`tree` 是
72 1
|
1月前
|
JavaScript
箭头函数与普通函数(function)的区别
箭头函数是ES6引入的新语法,相比传统函数表达式更简洁,且没有自己的this、arguments、super或new.target绑定,而是继承自外层作用域。这使得箭头函数在处理回调和闭包时更加灵活方便。
|
1月前
|
C++ 容器
函数对象包装器function和bind机制
函数对象包装器function和bind机制
21 0
|
3月前
【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
|
3月前
|
安全 JavaScript 应用服务中间件
【Azure Function App】如何修改Azure函数应用的默认页面呢?
【Azure Function App】如何修改Azure函数应用的默认页面呢?
|
3月前
|
SQL JavaScript 前端开发
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
【Azure 应用服务】Azure JS Function 异步方法中执行SQL查询后,Callback函数中日志无法输出问题
|
3月前
|
JSON 数据格式 Python
【Azure 应用服务】Azure Function Python函数中,如何获取Event Hub Trigger的消息Event所属于的PartitionID呢?
【Azure 应用服务】Azure Function Python函数中,如何获取Event Hub Trigger的消息Event所属于的PartitionID呢?
|
3月前
|
C++ Python
【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误
【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误

热门文章

最新文章

下一篇
无影云桌面