ID: 31977
Updated by: [EMAIL PROTECTED]
Reported By: jmarbas at hotmail dot com
-Status: Verified
+Status: Open
-Bug Type: Class/Object related
+Bug Type: Documentation problem
Operating System: *
PHP Version: 4CVS, 5CVS (2005-02-22)
New Comment:
The documentation is wrong: count() should return 1 for any variable
that is not an array or NULL.
Previous Comments:
------------------------------------------------------------------------
[2005-02-15 03:01:45] jmarbas at hotmail dot com
Description:
------------
When I try to count the number of non-static members of an object with
the count() function, I always get a count of 1. The code below shows
both a user defined class and the standard class(StdClass) instances
with more than 1 member variable each but the count() still comes out
to 1.
Reproduce code:
---------------
class jerry{
public $foo='A property';
public $bar='Another property';
}
$obj1 = new jerry();
echo $obj1->foo."\n";
echo $obj1->bar."\n";
printf("The count is %d\n",count($obj1));
$obj = new StdClass;
$obj->foo='A property';
$obj->bar='Another property';
$obj->bleh='asdf';
echo $obj->foo."\n";
echo $obj->bar."\n";
echo $obj->bleh."\n";
printf("The count is %d\n",count($obj));
Expected result:
----------------
I expect the count() function to count all non-static member variables
just like it says in the count() description on php.net
Actual result:
--------------
The actual count() is 1 for both objects in the code pasted above.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31977&edit=1