From: [EMAIL PROTECTED] Operating system: Windows 2000 Server PHP version: 4.2.3 PHP Bug Type: Zend Engine 2 problem Bug description: variables can be dynamically added to a class, without it being defined.
If you run the following script and check the output, you will see the that variable JUNK has been dynamically defined in the class X_Row() by using the statement: $user->query_row->JUNK = "stuff"; This behaviour certainly wasn't what I would expect. ----------------------- <?php class X { var $query_row; function X() { $this->query_row = new X_Row(); return; } } class X_Row { var $USERNAME; var $PASSWORD; var $CHECKING; function X_Row() { $this->USERNAME = NULL; $this->PASSWORD = NULL; $this->CHECKING = NULL; return; } //end function X_Row } //X_Row $user = new X(); //$user->query_row is of class X_Row //Therefore, the next statement should be valid, //USERNAME has been declared in X_Row $user->query_row->USERNAME = 'mtl'; //But the next statement shouldn't be //because the variable JUNK has not //been declared in the class $user->query_row->JUNK = 'stuff'; $classname = get_class($user->query_row); $classvars = get_class_vars($classname); $query_row_class_vars = array_keys($classvars); echo "classname:{$classname}<br>"; echo "classvars:<br>"; var_dump($classvars); echo "<br>query_row_class_vars<br>"; var_dump($query_row_class_vars); echo "<br><br>HOW IS THIS POSSIBLE? SEE BELOW!!!!!!!!!"; echo "<br>user->query_row:<br>"; var_dump($user->query_row); ?> -- Edit bug report at http://bugs.php.net/?id=21604&edit=1 -- Try a CVS snapshot: http://bugs.php.net/fix.php?id=21604&r=trysnapshot Fixed in CVS: http://bugs.php.net/fix.php?id=21604&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=21604&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=21604&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=21604&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=21604&r=support Expected behavior: http://bugs.php.net/fix.php?id=21604&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=21604&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=21604&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=21604&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=21604&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=21604&r=dst IIS Stability: http://bugs.php.net/fix.php?id=21604&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=21604&r=gnused