ID: 17537
User updated by: mrbrush at harem dot dev dot hu
Reported By: mrbrush 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:
------------------------------------------------------------------------
[2002-11-15 04:41:19] [EMAIL PROTECTED]
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] [EMAIL PROTECTED]
Reclassify as doc problem
------------------------------------------------------------------------
[2002-05-30 21:08:01] 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
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=17537&edit=1