こんばんは。ファガイです。
本日は、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) “ううう”
“`
こんな感じになりましたよ。
参照返しで貰ったら、=&で変数に渡す必要があるっていうのが肝ですかね?
そんな感じでした。メモリ消費には使えるかな?
コメント