Viewing file: multi_array_access.php (991 B) -rw-rw-r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
// This is a very strange example, in which a data is changed by reading it. // The var_dump () before the line marked * will print a different result // than the line the *, even though the data in p0 is only read in // between. This is because the reference assignment creates an array from // NULL in the variable $p. This example shows that
// $y = $x[$p[0]];
// cannot be translated into
// $t0 =& $p[0]; // $t1 =& $x[$t0]; // $y =& $t1;
// Note the change in $p $p = NULL; var_dump ($p); $t =& $p[0]; var_dump ($p);
// It only happens with references $p = NULL; var_dump ($p); $t = $p[0]; var_dump ($p);
// The array doesnt need to be NULL, just missing the index. $p = array (1 => 17); var_dump ($p); $t =& $p[2]; var_dump ($p);
// The array doesnt need to be NULL, just missing the index. $p = array (1 => 17); var_dump ($p); $t = $p[2]; var_dump ($p);
$x = array (4 => "d"); var_dump ($x); $y = $x[$p[0]]; var_dump ($x); ?>
|