#17537 [Csd]: get_class_vars works unexpected

From: Date: Sun, 22 Feb 2004 19:54:48 +0000
Subject: #17537 [Csd]: get_class_vars works unexpected
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969359147@lists.php.net to get a copy of this message
ID: 17537 User updated by: nandi-nospam1 at harem dot dev dot hu -Reported By: mrbrush at harem dot dev dot hu +Reported By: nandi-nospam1 at harem dot dev dot hu Status: Closed Bug Type: Documentation problem Operating System: Linux 2.4. PHP Version: 4.2.1 New Comment: The documentation says that the get_class_vars() method should return an array only with the properties wich had DEFAULT values already at class definition. That worked fine with PHP 4.1.2 but it's behavior changed with PHP 4.2.[0 or 1] because it displays also those properties which has no default values at definition. I don't really think that this is a bug, but it seems that there was a change in the function behavior and neither the changelog nor the documentation mentions a word about this change. Example - the following script from the docs: <?php class myclass { var $var1; // this has no default value... var $var2 = "xyz"; var $var3 = 100; // constructor function myclass() { return(true); } } $my_class = new myclass(); $class_vars = get_class_vars(get_class($my_class)); echo "<pre>"; foreach ($class_vars as $name => $value) { echo "$name : $value\n"; } echo "</pre>"; ?> should outuput something like this: var2 : xyz var3 : 100 but the result in PHP 4.2.1 is: var1 : var2 : xyz var3 : 100 Previous Comments: ------------------------------------------------------------------------ [2004-02-22 14:53:38] mrbrush at harem dot dev dot hu The documentation says that the get_class_vars() method should return an array only with the properties wich had DEFAULT values already at class definition. That worked fine with PHP 4.1.2 but it's behavior changed with PHP 4.2.[0 or 1] because it displays also those properties which has no default values at definition. I don't really think that this is a bug, but it seems that there was a change in the function behavior and neither the changelog nor the documentation mentions a word about this change. Example - the following script from the docs: <?php class myclass { var $var1; // this has no default value... var $var2 = "xyz"; var $var3 = 100; // constructor function myclass() { return(true); } } $my_class = new myclass(); $class_vars = get_class_vars(get_class($my_class)); echo "<pre>"; foreach ($class_vars as $name => $value) { echo "$name : $value\n"; } echo "</pre>"; ?> should outuput something like this: var2 : xyz var3 : 100 but the result in PHP 4.2.1 is: var1 : var2 : xyz var3 : 100 ------------------------------------------------------------------------ [2002-11-15 04:41:19] philip@php.net This is now documented. The change can be seen in here: http://cvs.php.net/cvs.php/phpdoc/en/reference/classobj/functions/get-class-vars.xml As of PHP 4.2.0, all are shown. ------------------------------------------------------------------------ [2002-05-31 02:45:57] derick@php.net Reclassify as doc problem ------------------------------------------------------------------------ [2002-05-30 21:08:01] nandi-nospam1 at harem dot dev dot hu The documentation says that the get_class_vars() method should return an array only with the properties wich had DEFAULT values already at class definition. That worked fine with PHP 4.1.2 but it's behavior changed with PHP 4.2.[0 or 1] because it displays also those properties which has no default values at definition. I don't really think that this is a bug, but it seems that there was a change in the function behavior and neither the changelog nor the documentation mentions a word about this change. Example - the following script from the docs: <?php class myclass { var $var1; // this has no default value... var $var2 = "xyz"; var $var3 = 100; // constructor function myclass() { return(true); } } $my_class = new myclass(); $class_vars = get_class_vars(get_class($my_class)); echo "<pre>"; foreach ($class_vars as $name => $value) { echo "$name : $value\n"; } echo "</pre>"; ?> should outuput something like this: var2 : xyz var3 : 100 but the result in PHP 4.2.1 is: var1 : var2 : xyz var3 : 100 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17537&edit=1

« previous php.doc (#969359147) next »