PHPのカスタム関数の前の&どういうことかを話します~


CIフレームワークでは、多くの関数の前に「&」という参照オペレータが現れているのを見て、おかしいです.
伝統的な授業や本の中ではこのような例は少ないでしょう.私はどうせほとんど見ていないので、資料を探して、自分で記録しましょう.実は「&」はアドレス参照で、次の例をよく知っているはずです.
<?php
	$temp = 1;
	$a = &$temp;
	$a = 2;
	echo $temp;	//  :2      ?
?>
では、カスタム関数の前に「&」を付けると、どのアドレス参照になりますか?関数ですか、それとも関数が値を返しますか.
次の例を見てみましょう.
<?php
/**
 *         
 * @return int     
 */
function &test(){
	static $a;
	$a += 1;
	echo $a;
	return $a;
}

//   
$t = test();	//$t   :1
$t = 5;
$t = test();	//$t   :2

$t = &test();	//$t   :3
$t = 5;
$t = test();	//$t   :6
?>
の答えは、「&」が現れると、関数の戻り値を参照するアドレスです.$tは&test()の戻り値のアドレスを指すため、$tが6の場合が発生する.
愚見、間違いがあれば、感謝に堪えないことを指摘してください.