PHP函数原理理解详谈

作者:不要叫我阿哥 时间:2023-06-04 01:56:59 

函数初解

function,是一种语法结构,将实现某一个功能的代码块(多行代码)封装到一个结构中实现代码的重复利用

函数定义语法:

关键点:function关键字,函数名,参数(形参和实参),函数体和返回值

基本语法:

function 函数名(参数){
//函数体
//返回值:return结果
}

定义函数的目的:实现代码的重复利用(简单明了)

函数的使用:通过访问函数的名字+();//如果函数在定义的过程中有参数,那么在调用的时候必须传入对应的参数

实例:

<?php
function display(){//定义
   echo'hello world';
}
display();//调用
?>

函数是在代码执行阶段碰到函数名字的时候才会调用,不是在编译阶段

函数的调用特点:只要系统在内存中能够找到就可以执行,也就是函数的调用可以在函数的定义之前

<?php
display();//调用
function display(){//定义
 echo'hello world';
}
?>

也就是这样

注意:函数也不可同名

参数详解

函数的参数分为两种:形参和实参

形参是实参的载体:实参在调用时需要传入函数内部参与计算,那么需要在函数内部去找到实际数据所在的位置才能找到数据本身;需要实际调用的时候,将数据以实参的形式传递给形参;给形参赋值,从而使得函数内部可以用到外部数据

<?php
function add($arg1,$arg2){//芝士形参,使用逗号分隔开
   echo $arg1+$arg2;
}
echo '<hr/>';
$arg1=10;$arg2=20;
add($arg1,$arg2);//芝士传入的实参,可以是变量或者其他有值的表达式
?>

也就是调用时传给函数的值是实参,函数会把实参赋值给形参,然后形参在函数中运行

函数外部定义的变量名字与函数定义的=形参名字冲突(重名)是没有任何关系的,也就是同名形参在不同函数可以重复使用

引用传递

有的时候,希望在函数内部拿到的外部数据,能够在函数内部改变,那么就需要明确告知函数(定义时),函数才会在调用的时候去主动获取外部数据的内存地址。

基本定义语法:
Function 函数名(形参1,$形参2){
           //函数体
}

在调用的时候,必须给引用传值的参数位置传入实际参数苏,而且参数本身必须是变量。(变量才有指向的数值的内存地址)

<?php
function display($a,&$b){
   $a=$a*$a;
   $b=$b*$b;
   echo $a,'<br>',$b,'<br/>';
}
$a=10;$b=5;
display($a,$b);
echo'<hr/>',$a,'<br/>',$b;
?>

PHP函数原理理解详谈

由于$,所以函数在定义的时候,对应的b形参采用的是取地址,所以在实参传入之后,系统b取到了外部变量b的内存地址,a只去到了值,所以a只改变了函数内部自己,而b改变自己的同时也改变了外部

引用传值注意事项:在传入实参的时候,必须传入变量

函数体:函数内部(大括号{}里面)的所有代码都称之为函数体 函数返回值:

返回值:return,指的是将函数实现的结果,通过return关键字返回给函数外部(函数调用处);在php中所有的函数都有返回值(如果没有明确return使用,则系统默认返回null)

注意:函数的返回值可以是任意数据类型

return会直接结束函数,在return后的无法执行(函数内)

return还可以在文件中直接使用(不在函数里面);代表文件将结果return

后面跟的内容,转交给包含当前文件的位置.(通产在系统配置文件中使用较多)

在文件中也代表着终止文件后面的代码

静态变量

关键字:static,是在函数内部定义的变量,使用static关键字修饰,用来实现跨函数共享数据的变量,函数运行结束所有局部变量都会清空,如果重新运行一下函数,所有的局部变量又会重新初始化

基本语法:

function 函数名(){
//定义变量
static $变量名=值 //通常会在定义的时候就直接赋值
}

<?php
function display(){
   $local =1;
   static $count =1;
   echo $local++,$count++,'<br/>';
}
display();//11
display();//12
display();//13
?>

函数在调用的时候,会自动跳过static关键字这一行,也就是静态变量在使用后不会被释放

来源:https://blog.csdn.net/m0_73770225/article/details/127926890

标签:PHP,函数
0
投稿

猜你喜欢

  • 语义化的HTML结构到底有何好处?

    2009-07-13 12:38:00
  • Python读取本地文件并解析网页元素的方法

    2022-01-10 08:06:27
  • Windows 系统下的 Git 2.7 最新下载及安装教程图文详解

    2022-02-07 01:08:47
  • 对Golang中的runtime.Caller使用说明

    2024-05-21 10:24:43
  • pytorch如何定义新的自动求导函数

    2021-02-10 20:14:49
  • Mysql的最大连接数怎样用java程序测试

    2009-01-14 12:05:00
  • 吐血推荐珍藏的Visual Studio Code插件(推荐)

    2023-02-09 08:58:31
  • python迷宫问题深度优先遍历实例

    2023-10-16 18:54:06
  • 如何用Pytorch搭建一个房价预测模型

    2022-12-16 17:09:21
  • python使用matplotlib模块绘制多条折线图、散点图

    2021-07-28 06:41:20
  • Vue2.0 axios前后端登陆拦截器(实例讲解)

    2023-07-02 16:59:11
  • Python使用matplotlib绘制三维图形示例

    2022-09-14 10:53:14
  • django框架基于queryset和双下划线的跨表查询操作详解

    2022-02-22 04:30:32
  • ThinkPHP基于think-queue的队列插件实现消息推送

    2023-05-25 05:59:12
  • 使用perl实现拆分数据表(mysql)并迁移数据实例

    2022-10-07 04:12:20
  • 一个假冒的序列号被用来注册Internet Download Manager,IDM正在退出的解决办法

    2022-10-12 03:19:40
  • 简单了解django缓存方式及配置

    2022-11-20 05:04:17
  • ThinkPHP 3.2 版本升级了哪些内容

    2023-09-05 04:22:04
  • JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome

    2024-04-16 09:37:25
  • OpenCV实现相机标定

    2023-11-13 00:36:45
  • asp之家 网络编程 m.aspxhome.com