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の場合が発生する.愚見、間違いがあれば、感謝に堪えないことを指摘してください.