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] [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] 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

Reply via email to