参照(リファレンス)渡しは、ニコイチになる呪文

久々にPHPネタを書きます。

といっても参照渡しって他の言語でもあるかと思いますが、、、長い目でみてください。

▶︎参照(リファレンス)渡しとは

引数の渡し方の一つ。
引数の渡し方では、「参照渡し」以外に、
ごく一般的でよく見る普通の引数の渡し方に「値渡し」がある。

 

まず、ごく一般的でよく見る普通の引数の渡し方の

「値渡し」を見ていきます。

/**
 * 数値型を文字列型に変更する
 *
 * @param integer $number
 * @return string $number
 */
function convertString($number)
{
  //return (string)$number;のが冗長ではないが、そこは我慢。
  $number = (string)$number;
  return $number;
}

$a = 1;
convertString($a); 
var_dump($a); //int(1) 返り値を$aに格納していないため、$a = 1のまま

$b = 2;
$b = convertString($b);
var_dump($b); //string(1) "2"

 

 

その後に、「参照渡し」を見てみる。

//PHP5.4.0から仕様変わったやーつー。※今回はPHP5.5を想定
/**
 * 数値型を文字列型に変更する
 *
 * @param integer $number
 * @return string $number
 */
function convertString_reference(&$number)
{
  $number = (string)$number;
  return $number;
}

$c = 3;
//PHP5.4.0以前ではconvertString_reference(&$c)でも呼べる
convertString_reference($c); //$numberと$cがニコイチとなる。
var_dump($c); //string(1) "3"

$d = 4;
//$numberと$dがニコイチ(同等)となる。
$d = convertString_reference($d); 
var_dump($d); //string(1) "4"

参照渡しをすると、ニコイチになれる!

ニコイチってもう古いんかな?昔はやってたからいい例えと思って使ってみたw

参照渡しで渡された引数は、関数内のローカル変数と同等になる。

片方が+1されると、他方も+1される、まさしくニコイチ!

 

 

影響範囲を考えないと使いにくそうで、自から使ったことはまだないですが、

使えるいいタイミング見つけてみたいと思います。

投稿者:

kin29man

農学部卒の7年目エンジニアです👩‍💻 PHPとGASが好きです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です