From: arqentus at arqentus dot com Operating system: Windows 2003 PHP version: 5.1.6 PHP Bug Type: Class/Object related Bug description: Extended Class & extract problems
Description: ------------ extract does not override the values when using a extended class. Note: Using a manual fill, will work: class cText extends cField{ function __construct( $fields = array() ) { foreach($fields as $key => $val ) { $this->{$key} = $val; } //extract($fields, EXTR_REFS); } } Looks like the extract can't handle the extend class. Note: Using a normal NONE extended class, and extract will work. Somehow it seems to lack the scope. Yet, a 'manual' foreach loop is able to access the scope. Differend combination have been tried ( moving the construct to the parent, passing the fields to the parent and extracting there, etc ). None are able to work. Reproduce code: --------------- class cField{ var $desc = 'xxx'; } class cText extends cField{ function __construct( $fields = array() ) { extract($fields, EXTR_REFS); } } $user_name = new cText( array ( _desc => 'Name' ) ); echo $user_name->desc; Expected result: ---------------- The expect result is: 'Name'; Actual result: -------------- The result archieved is: 'xxx'; -- Edit bug report at http://bugs.php.net/?id=38745&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=38745&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=38745&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=38745&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=38745&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=38745&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=38745&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=38745&r=needscript Try newer version: http://bugs.php.net/fix.php?id=38745&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=38745&r=support Expected behavior: http://bugs.php.net/fix.php?id=38745&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=38745&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=38745&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=38745&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=38745&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=38745&r=dst IIS Stability: http://bugs.php.net/fix.php?id=38745&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=38745&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=38745&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=38745&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=38745&r=mysqlcfg