From: doublecompile at gmail dot com Operating system: PHP version: 5.2.0RC2 PHP Bug Type: Feature/Change Request Bug description: Addition of Magic __toArray() function
Description: ------------ Doing this: $newarray = (array)$object; will take the properties of an object and assign them as the values of keys in an array. As of PHP 5.2, doing this: $stringified = (string)$object; will call the magic __toString() function for a user-specified formatting of the object as a string. It would be a great addition to call a magic __toArray() function if an object is cast as an array, instead of converting its public members to array elements. (For instance, the class might not have public members). Classes without the function could use the default method of mapping property names to array keys. Just my two cents. Reproduce code: --------------- <?php class magicExample { public $aoeu = "htns"; function __toArray() { return array('foo'=>'bar'); } } $test = new magicExample(); $array = (array)$test; print_r($array); // should show foo=>bar, not aoeu=>htns ?> -- Edit bug report at http://bugs.php.net/?id=38508&edit=1 -- Try a CVS snapshot (PHP 4.4): http://bugs.php.net/fix.php?id=38508&r=trysnapshot44 Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=38508&r=trysnapshot52 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=38508&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=38508&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=38508&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=38508&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=38508&r=needscript Try newer version: http://bugs.php.net/fix.php?id=38508&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=38508&r=support Expected behavior: http://bugs.php.net/fix.php?id=38508&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=38508&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=38508&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=38508&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=38508&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=38508&r=dst IIS Stability: http://bugs.php.net/fix.php?id=38508&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=38508&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=38508&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=38508&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=38508&r=mysqlcfg