Według php manual:PHP zmienne odniesienia i pamięci używanej
<?php
$a =& $b;
?>
// Note:
// $a and $b are completely equal here. $a is not pointing to $b or vice versa.
// $a and $b are pointing to the same place.
zakładać, że:
<?php
$x = "something";
$y = $x;
$z = $x;
powinny zużywać więcej pamięci niż:
<?php
$x = "something";
$y =& $x;
$z =& $x;
, ponieważ, jeśli rozumiał dobrze, w pierwszym przypadku "duplikujemy" wartość something
i przypisujemy ją do $y
i $z
mając na końcu 3 zmienne i 3 treści, podczas gdy w drugim przypadku mamy 3 zmienne pointing
o tej samej treści.
Więc z kodem jak:
$value = "put something here, like a long lorem ipsum";
for($i = 0; $i < 100000; $i++)
{
${"a$i"} =& $value;
}
echo memory_get_usage(true);
spodziewam się mieć wykorzystanie pamięci niższa niż:
$value = "put something here, like a long lorem ipsum";
for($i = 0; $i < 100000; $i++)
{
${"a$i"} = $value;
}
echo memory_get_usage(true);
Ale użycie pamięci jest taka sama w obu przypadkach.
Czego mi brakuje?
Bardziej szczegółowa odpowiedź :) – Benjie