亲宝软件园·资讯

展开

PHP函数原理理解详谈

不要叫我阿哥 人气:0

函数初解

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关键字这一行,也就是静态变量在使用后不会被释放

加载全部内容

相关教程
猜你喜欢
用户评论