Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php变量函数及函数引用和取消引用实例详解

php变量函数及函数引用和取消引用实例详解

伊谢尔伦
伊谢尔伦asal
2017-05-05 12:02:033365semak imbas

变量函数

在 php 中是支持变量函数的,首先定义一些函数,再声明一个变量,使用变量来调用不同的函数,然后不断地重新给变量赋值。下面我们将通过一个实例来介绍变量函数的具体使用方法。在这个例子中首先定义3个函数,接着声明一个变量并赋值,通过变量函数来访问不同的3个函数,需要重新不断地给变量赋值。

其示例的代码如下所示:

<?php
 function come(){
   echo "进门了<br>";
 }
 function go($name="tom"){
   echo "$name 出门了<br>";
 }
 function back($str){
   echo "重新进门 $str<br>";
 }
 $func = "come";        //声明一个变量并赋值
 $func();               //使用变量函数来调用函数come()
 $func = "go";          //重新给变量赋值
 $func("jane");         //使用变量函数来调用函数go()
 $func = "back";        //重新给变量赋值
 $func("jack");         //使用变量函数来调用函数back()
?>

运行结果如下所示:

152.png

说明:可以看到,变量函数的调用时通过改变变量名来实现的,通过在变量名后面加上一对小括号,php将自动寻找与变量名相同的函数,并执行它。如果找不到对应的函数,系统将会报错。这项技术可以用于实现回调函数和函数表等等。


函数的引用

函数间参数的传递中的按引用传递的方式可以修改实参的内容。引用不仅可以用于普通变量、函数的参数,可也以用于函数本身。对函数的引用,就是对函数返回结果的引用。

下面我们将通过一个实例来说明,实现定义一个函数,这里需要在函数名前加上 “ & ” 符,接着,变量$str 将引用该函数,最后输出该变量$str, 实际上就是 $tmp的值。

实例代码如下所示:

<?php
 function &test($tmp=0){        //定义一个函数,加 & 符号
   return $tmp;                 //返回参数 $tmp
 }
 $str = &test("hello word");    //声明一个函数的引用$str
 echo $str;                     //输出$str
?>

输出结果为 : hello word

注意:和参数传递不同,对函数的引用必须在两个地方都使用 “ & ” 符,用来说明返回的是一个引用。

取消引用

当在实际操作中不需要引用时,可以取消参数的引用传递方式的引用,只需要使用PHP函数即可,这里取消引用使用 unset() 函数,它只是断开了变量名和变量内容之间的绑定,而不是销毁变量内容。

下面通过一个实例来说明,首先声明一个变量和一个变量引用,输出引用后取消引用,再次调用引用和原变量。可以看到,取消引用后对原变量没有任何影响。

实例代码如下所示:

<?php
 $num = 123;
 $math = &$num;
 echo "\$math is: ".$math . "<br>";
 unset($math);
 echo "\$math is: ".$math . "<br>";
 echo "\$num is: " .$num;
?>

运行结果为:

$math is: 123
$math is: 
$num is: 123

以上就是php自定义函数的变量函数以及函数引用和取消引用的内容实例介绍,下一章我们开始学习php自定义函数变量的范围。

【相关教程推荐】

1. 《php.cn独孤九贱(4)-php视频教程

2.  php编程从入门到精通全套视频教程

3.  php实战视频教程

Atas ialah kandungan terperinci php变量函数及函数引用和取消引用实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn