Skip to content

Instantly share code, notes, and snippets.

@rande
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rande/55a4338badbad89e46b3 to your computer and use it in GitHub Desktop.
Save rande/55a4338badbad89e46b3 to your computer and use it in GitHub Desktop.
<?php
$array = ['toto' => 1];
$array['titi'] = &$array['toto'];
function is_ref($a, $k) {
$b = $a;
$v = $a[$k];
$h = (object)[];
$b[$k] = $h;
if ($a[$k] === $h) {
$a[$k] = $v;
return true;
}
return false;
}
var_dump(is_ref($array, 'titi')); // true
var_dump(is_ref(array(''), 0)); // false
var_dump(is_ref(array(array()), 0)); // false
var_dump(is_ref(array(null), 0)); // false
// var_dump(is_ref((object)[], 0)); // not the question ? right ?
var_dump($array);
/* array(2) {
["toto"]=>
&int(1)
["titi"]=>
&int(1)
}
*/
$array['titi'] = 2;
var_dump($array);
/* array(2) {
["toto"]=>
&int(2)
["titi"]=>
&int(2)
}
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment