Odniesienie wykrywania w tablicy z innej funkcji
Używam więc metody pinowej, ale referencja jest wykrywana o jeden poziom za późno:
$pin = time();
function wrap($arr){
test($arr);
}
function test(&$arr){
global $pin;
if(in_array($pin, $arr))
return print "ref";
$arr[] = $pin;
foreach($arr as &$v){
if($v != $pin){
if(is_array($v))
return test($v);
print $v . " ";
}
}
}
$array = array(1, 2, 3);
$array[4] = &$array;
wrap($array);
dostaję1 2 3 1 2 3 rec
Ale oczekuję1 2 3 rec
Jeśli tylko to zrobiętest($arr)
to działa, ale problem polega na tym, że muszę zawinąć funkcję testową do innej, która akceptuje wartości nie odwołań :(
Czy w jakiś sposób mogę wykryć odniesienie w odpowiednim momencie dzięki funkcji pakowania?