PHPでの関数の参照返しについて調べた

スポンサーリンク

こんばんは。ファガイです。

本日は、PHPの参照返しについて、調べてみましたよっ。

PHP: リファレンスの説明

今回はやったことを書くだけになりますー。
参照返しは結構シビアなんだっていうことがよく分かりましたw

“`
class Sample{
private $data;

// 普通のget
public function get()
{
return $this->get_ref();
}

// 参照渡しのget
public function &get_ref()
{
if(isset($this->data)) {
return $this->data;
}
$this->data = “sample”;
return $this->data;
}
}

echo “検証1\n”;
$class = new Sample();
$data = $class->get();
var_dump($data);
$data = “あああ”;
var_dump($class->get());

echo “検証2\n”;
$class2 = new Sample();
$data2 =& $class2->get();
var_dump($data2);
$data2 = “いいい”;
var_dump($class2->get());

echo “検証3\n”;
$class3 = new Sample();
$data3 = $class3->get_ref();
var_dump($data3);
$data3 = “ううう”;
var_dump($class3->get());

echo “検証4\n”;
$class4 = new Sample();
$data4 =& $class4->get_ref();
var_dump($data4);
$data4 = “ううう”;
var_dump($class4->get());

結果—————————-

検証1
string(6) “sample”
string(6) “sample”
検証2
string(6) “sample”
string(6) “sample”
検証3
string(6) “sample”
string(6) “sample”
検証4
string(6) “sample”
string(9) “ううう”
“`

こんな感じになりましたよ。
参照返しで貰ったら、=&で変数に渡す必要があるっていうのが肝ですかね?

そんな感じでした。メモリ消費には使えるかな?

コメント

タイトルとURLをコピーしました