PHP函数原理理解详谈

 更新时间:2022年11月20日 17:12:07   作者:不要叫我阿哥  
这篇文章主要介绍了PHP函数原理,PHP 的真正威力源自于它的函数。在PHP中,提供了超过1000个内建的函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

函数初解

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;
?>

由于$,所以函数在定义的时候,对应的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关键字这一行,也就是静态变量在使用后不会被释放

到此这篇关于PHP函数原理理解详谈的文章就介绍到这了,更多相关PHP函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • php在服务器执行exec命令失败的解决方法

    php在服务器执行exec命令失败的解决方法

    出于安全的原因,服务器是不允许php或者其他语言执行exec命令的,当你有特殊需要php在服务器执行exec命令时,你需要设置两个地方,不然就无法执行成功
    2012-03-03
  • PHP生成指定范围内的N个不重复的随机数

    PHP生成指定范围内的N个不重复的随机数

    今天小编就为大家分享一篇关于PHP生成指定范围内的N个不重复的随机数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 浅谈swoole的作用与原理

    浅谈swoole的作用与原理

    异步Node系统可以在不同协议间共享代码库,并在代码之外提供服务。实际上PHP中也有类似于Node的存在,并被列入了PHP拓展,叫做Swoole。本文将带领读者介绍其原理和如何使用。
    2021-05-05
  • PHP 变量定义和变量替换的方法

    PHP 变量定义和变量替换的方法

    当用双引号或heredoc定义字符串直接量时,字符串服从变量替换(variable interpolation)规则。替换即在字符串中用变量的值来替换变量名,也就是说在字符串中会自动进行变量解析。
    2009-07-07
  • php rsa 加密,解密,签名,验签详解

    php rsa 加密,解密,签名,验签详解

    这篇文章主要介绍了php rsa 加密,解密,签名,验签详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • PHP实现简单的模板引擎功能示例

    PHP实现简单的模板引擎功能示例

    这篇文章主要介绍了PHP实现简单的模板引擎功能,结合实例形式详细分析了PHP实现模板引擎功能的模版类、编译类、控制器类及模板文件等实现方法与相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • PHP-CGI远程代码执行漏洞分析与防范

    PHP-CGI远程代码执行漏洞分析与防范

    本文给大家介绍的是PHP-CGI远程代码执行漏洞(CVE-2012-1823)分析和防范,这是最近爆出的一个php的比较严重的漏洞,这里分享给大家。
    2017-05-05
  • 15种PHP Encoder的比较

    15种PHP Encoder的比较

    15种PHP Encoder的比较...
    2007-03-03
  • PHP使用PDO 连接与连接管理操作实例分析

    PHP使用PDO 连接与连接管理操作实例分析

    这篇文章主要介绍了PHP使用PDO 连接与连接管理操作,结合实例形式分析了PHP使用PDO 连接mysql数据库的连接建立、关闭、持久化连接等相关操作技巧,需要的朋友可以参考下
    2020-04-04
  • PHP+RabbitMQ实现消息队列的完整代码

    PHP+RabbitMQ实现消息队列的完整代码

    这篇文章主要给大家介绍了关于利用PHP+RabbitMQ实现消息队列的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论