|  | Posted by Ivαn Sαnchez Ortega on 07/03/62 11:40 
-----BEGIN PGP SIGNED MESSAGE-----Hash: SHA1
 
 Dawsons wrote:
 
 > say for example i have a variable called $definition_london
 >
 > Say for exaple that has not set value...
 
 If it has no value, that varable name does not exist. Bye-bye.
 
 > Is it possible to echoe thew ACTUAL variable name into a document, rather
 > than the variables information?
 
 No, because a variable can have more than one, due to the way PHP handles
 references. Suppose the following code:
 
 <?php
 
 $a = 42;
 
 $b =& $a;
 $c =& $a;
 unset ($a);
 
 ?>
 
 At this point, what is the name of the variable that holds "42"?? $b, $c,
 both, or nobody??
 
 For this issue, do not think that a variable is a variable. Think that a
 variable is an entry in an ordered map (with internal pointers),
 implemented as a hash table that can map two (or more) keys to the same
 value.
 
 Let me (try to) explain this concept in pseudo-C:
 
 function foo()
 {
 int* a;
 int* b;
 inc* c;
 a = b = c = malloc(sizeof(int));
 *a = 42;
 a = NULL;
 }
 
 This would have a similar behaviour than the PHP code I posted up there. In
 PHP, variable names "point" to the value. A reference is a pointer to that
 value. Storing a reference is making two entries on the variable hash
 tables point to the same value. When no references to a value are found,
 that memory is freed.
 
 Variable management in PHP is quite complicated internally, with all that
 duplicate-on-write stuff when making copies of complex variables. The kind
 of stuff that operating systems do when you fork() a process.
 
 
 
 I agree with Ewoud: you can transverse the $GLOBALS superglobal array to
 search for your value, but if you have any references over there, you may
 find lots of problems. Lots.
 
 - --
 - ----------------------------------
 IvΓ‘n SΓ‘nchez Ortega -i-punto-sanchez--arroba-mirame-punto-net
 
 http://acm.asoc.fi.upm.es/~mr/
 Proudly running Debian Linux with 2.6.12-1-686 kernel, KDE3.5.0, and PHP
 5.1.2-1 generating this signature.
 Uptime: 00:59:10 up 48 min,  1 user,  load average: 0.78, 0.74, 0.74
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
 iD8DBQFD+lyN3jcQ2mg3Pc8RAvKSAJ0WnvCHl3pnSbriFUUpt2GaubcdYACfeTLZ
 LN4aiZoWerYGDo+5lrF2Bk0=
 =OrfI
 -----END PGP SIGNATURE-----
  Navigation: [Reply to this message] |