Hi, what does everyone think about adding a second parameter to the *_fetch_object() functions (sybase_fetch_object, mysql_fetch_object, ... etc.) which allows users to define a class name which will then be used instead of "stdClass"?
E.g.: class Article { var $article_id, $caption, $text; } $q= sybase_query('select * from article where article_id= 1'); if ($q) while ($a= sybase_fetch_object($q, 'Article')) { var_dump($a); } This saves a couple of lines of code in PHP (formerly, you'd either put all of article's attributes in the constructor, made the constructor accept an associative array or assigned all of the attributes like this: $a= &new Article(); $a->article_id= $row['article_id']; $a->caption= $row['caption']; $a->text= $row['text']; ) all of which seems ugly and looks like unnecessary overhead. Since PHP is missing a cast working on user-defined types ( while ($o= sybase_fetch_object($q)) { $a= (Article)$o; } ) there would be another suggestion to introduce a function cast: while ($o= sybase_fetch_object($q)) { $a= cast($o, 'Article'); } Though maybe the name isn't ideal and could be implemented in userland, too ( function &cast(&$var, $type) { // [...Handle non-objects and normal types...] // [...Handle non-existant classes w/ name $type...] $ret= &new $type(); foreach (get_object_vars($var) as $k=> $v) { $ret->$k= $v; } return $ret; } ) but with more performance issues than if it was built-in. Maybe it's even simpler to allow (MyType)$var syntax, but this would have to be introduced into Zend Engine. Thoughts? -- Timm Any sufficiently advanced bug is indistinguishable from a feature -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php