php引用传递和值传递

主要是实参和形参的相互影响性。

引用传递:形参的改变会影响实参

值传递:赋值,不相互影响

参数引用传递
        $pams1 = 1;	
	function ssr($params)    //这里的参数的没有 &
	{
		$params = 4;
		return $params;
	}
	$pams2 = ssr($pams1);
	echo '1:'.$pams1;	// = 1
	echo "<br>";
	echo '2:'.$pams2;	// = 4
	echo "<hr>";
        $pams1 = 1;	
	function ssr(&$params)    //这里的参数有 &
	{
		$params = 4;
		return $params;
	}
	$pams2 = ssr($pams1);
	echo '1:'.$pams1;	// = 4
	echo "<br>";
	echo '2:'.$pams2;	// = 4
	echo "<hr>";

引用传递的结果会因为引用的参数的改变而改变

函数引用传递
        $a = 1;
	function &func(&$a) {
	  return $a;
	}
	$b = func($a);	// 这里不是函数引用传递
	$c = &func($a);	// 这是函数引用传递
	$b = 2;
	echo "a: $a, b: $b, c: $c. <br />";
	//输出a: 1, b: 2, c: 1.
	//可见对$b的修改不会影响$a
	$c = 3;
	echo "a: $a, b: $b, c: $c. <br />";
	//输出a: 3, b: 2, c: 3.
	//可见对$c的修改会影响$a


猜你喜欢

转载自blog.csdn.net/seven_north/article/details/80705712