PHP:使用静态变量

在使用任何可能会被多次调用的函数时,我们都应考虑使用静态变量。静态变量让函数在多次被调用时记住变量的值,而这些变量并不是全局变量。

上一篇笔记说到了多维数组的排序需首先自定义排序函数。现在提出一个新的需求:统计递归的次数。那么我们就要使用静态变量了。

示例:使用静态变量

<?php 
	//创建数组
	$students = array(
		256 => array('name' => 'John', 'grade' => 98),
		23 => array('name' => 'Tom', 'grade' => 85),
		9 => array('name' => 'Steve', 'grade' => 94),
		363 => array('name' => 'Robert', 'grade' => 83),
		69 => array('name' => 'Jack', 'grade' => 78)
	);

	//按名字排序
	/*$count是一个静态变量它的初始值为1,它的赋值操作只在函数第一次被调用执行(因为它是一个静态变量),然后下一条语句打印递归次数,
         *最后$count的值加1
	 */
	function name_sort($x, $y) {
		static $count = 1;
		echo "<p>Iteration $count: {$x['name']} vs {$y['name']}</p>\n";
		$count++;
		return strcasecmp($x['name'], $y['name']);
	}


	//按成绩排序
	function grade_sort($x, $y) {
		static $count = 1;
		echo "<p>Iteration $count: {$x['grade']} vs {$y['grade']}</p>\n";
		$count++;
		return ($x['grade'] < $y['grade']);
	}

	uasort($students, 'name_sort');
	echo "<pre>".print_r($students,1)."<pre>";

	uasort($students, 'grade_sort');
	echo "<pre>".print_r($students,1)."<pre>";
?>

我们来看一下运行结果:


总结一下:在可能会被多次调用的函数中,我们应考虑使用静态变量,静态变量让函数在多次被调用时记住变量的值,而这些变量不是全局变量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值