PHP学习笔记8:函数


定义函数使用function关键字,这个关键字也是一个英文单词,意思是功能。顾名思义,使用函数就是在程序中实现一定的功能,他就是一段代码块。

内置函数

PHP提供了大量的内置函数,常见的内置函数包括数学函数、字符串函数、时间和日期函数等。

用例子来理解:

<?php
	echo rand()."<br />"; //返回随机整数
	echo rand(1000,9999)."<br />"; //产生一个4位随机整数
?>

运行结果:(每次刷新都会不一样)

1420187511
9413

自定义函数

更多的情况下,程序员需要的还是自定义函数。

自定义和调用函数

语法:

funciton 函数名(参数1, 参数2, ……) {
	函数的具体内容;
}

例子:

<?php
	function sayhello($chenghu) { //自定义函数sayhello
		return $chenghu."欢迎您来到学习php教程课堂。";
	}
	
	echo sayhello("赵先生"); //调用函数sayhello
?>

赵先生欢迎您来到学习php教程课堂。

这个例子函数的返回值,是通过值返回的。就是说return语句返回值时,创建了一个值的副本,并把它返回给使用此函数的命令或函数,在这里是echo语句。

向函数传递参数值

由于函数一段封闭的程序,因此很多时候都需要向函数内传递一些数据来进行操作。

下面我们直接抄书上的例子,用于自己的理解,并实际运行测试一下:

<?php
	function jia($tian,$fangjia){ //自定义函数
		$zongjia = $tian*$fangjia; //计算总结,一天价钱*天数
		echo "需要支付的总价:$zongjia"."元。";
	}
	
	$jitian = 5;
	$fangjianfei = 118;
	
	jia($jitian, $fangjianfei); //通过变量传递参数
	jia(7, 168); //直接传递参数
?>

需要支付的总价:590元。需要支付的总价:1176元。

分析:

  1. 上面这种方式传递参数值的方法就是向函数传递参数值。
  2. 其中function jia($tian, $fangjia){}定义了函数和参数。
  3. 传递参数值可以通过变量或者直接输入数字,都可以。

向函数传递参数引用

其实就是向函数传递变量引用。参数引用一定是变量引用,静态数值是没有引用一说的。使用&符号表示参数引用。

<?php
	$fee = 300;
	$xf = 50;
	function zongjia(&$fee, $xf){
		$fee=$fee+$xf;
		echo "需要支付的总价:$fee"."元。";
	}
	
	zongjia($fee, $xf);
	zongjia($fee, $xf);
?>

需要支付的总价:350元。需要支付的总价:400元。

分析:

  1. 上面传递参数值的方法就是向函数传递参数引用。使用的&符号表示参数的引用。
  2. function zongjia(&$fee, $xf){}定义了函数、参数和参数引用。变量$fee是以参数引用的方式进入函数的。当函数的运行结果改变了变量$fee的引用时,在函数外的变量$fee的值也发生了改变,也就是函数改变了外部变量的值。

从函数中返回值

从上面的例子中,都是把函数运算完成的值直接打印出来。很多情况下,程序并不需要直接把结果打印出来,而是仅仅给出结果,并且结果传递给调用这个函数的程序所用。

需要用到return关键字。还是用客房价格和服务价格为例进行理解。

<?php
	function jia($tian, $fangjia){ //声明自定义函数
		return $tian*$fangjia; //返回酒店消费的总价格
	}
	$jitian = 5;
	$fangjia = 198;
	echo jia($jitian, $fangjia);
?>

分析:

  1. 函数function jia($tian, $fangjia){}算法中,直接使用了return把运算结果返回给调用次函数的程序。
  2. 其中echo jia($jitian, $fangjia);语句调用了此函数,jia()把运算值返回给了echo语句,才有了显示出来的结果。主要是这里也可以不用echo来处理返回值,也可以对它进行其他处理,比如赋值给一个其他变量后供其他地方需要等。

对函数的引用

无论内置函数还是自定义函数,都可以通过简单的函数名调用。但也有些不同:

  • 如果是内置函数,可以直接调用。
  • 如果这个函数是PHP某个库文件中的函数,则需要用include()require命令把此文件加载,然后才能使用。
  • 如果是自定义函数,与引用程序同在一个文件中,则直接引用。如果此函数不在当前文件中,就需要用include()require()命令加载。跟上面那条类似。

其实大体上记住两条就是,内置函数任何地方都可以直接调用;自定义函数或者库文件内的函数,不在当前文档内的就需要加载后使用。

对函数的引用,实际上就是对函数返回值的引用。

<?php
	function &lizi($a=1){
		return $a;
	}
	$b = &lizi("引用函数的例子");
	echo $b."<br />";
?>

分析:

  1. 例子中先定义了一个函数,然后变量$b将引用该函数,最后输出变量$b,它实际上是$a的值。
  2. 和参数传递不同,定义函数和引用函数时,都必须使用&符号,表明返回的是一个引用。

对函数引用的取消

对于不需要引用的函数,可以做取消操作。取消引用使用unset()函数来完成。目的是断开变量名和变量内容之间的绑定,此时并没有销毁变量内容。

<?php
	$n = 100;
	$a = &$n;
	echo $a."<br />";
	unset($a); //取消引用$n
	echo $n;
?>

上面就是先声明变量和变量引用,输出引用后取消引用,再次调用原变量,取消引用后,对原油变量没有任何影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值