php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #60577 count(new EmptyIterator) returns 1
Submitted: 2011-12-20 20:17 UTC Modified: 2018-09-29 10:10 UTC
Votes:2
Avg. Score:3.0 ± 0.0
Reproduced:2 of 2 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: adam at sixohthree dot com Assigned: levim (profile)
Status: Closed Package: SPL related
PHP Version: 5.4SVN-2011-12-20 (SVN) OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: adam at sixohthree dot com
New email:
PHP Version: OS:

 

 [2011-12-20 20:17 UTC] adam at sixohthree dot com
Description:
------------
As an object that simulates a list of zero items, count(new EmptyIterator) should 
return zero.

Test script:
---------------
<?php
$it = new EmptyIterator;
var_dump(count($it));

Expected result:
----------------
int(0)

Actual result:
--------------
int(1)

Patches

bug60577_emptyiterator_count.diff (last revision 2011-12-20 20:20 UTC by adam at sixohthree dot com)

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-09-12 20:33 UTC] levim@php.net
-Status: Open +Status: Verified
 [2013-09-12 20:33 UTC] levim@php.net
I confirmed this for versions 5.1.0 - 5.5.3.
 [2013-09-12 20:37 UTC] levim@php.net
-Assigned To: +Assigned To: levim
 [2014-03-06 13:03 UTC] narf at devilix dot net
Technically not a duplicate, but very similar to #43650.

https://bugs.php.net/bug.php?id=43650
 [2014-05-09 08:16 UTC] iam4webwork at hotmail dot com
If this is a bug, then why is #46322 not a bug?
 [2014-05-09 14:13 UTC] levim@php.net
To be quite honest, this is the same exact 'bug'. The difference is really that some other Iterators implement Countable so you would expect an EmptyIterator to be Countable and return its count as 0.

The reason I haven't 'fixed' this bug yet is because there are fewer Iterators that implement Countable than I initially thought. I'm not quite sure what to do and have been working on other issues and features, notably adding return types: https://wiki.php.net/rfc/returntypehinting
 [2017-10-24 05:19 UTC] kalle@php.net
-Status: Verified +Status: Assigned
 [2018-08-10 03:15 UTC] carusogabriel@php.net
In PHP 7.2 we've introduced a warning for passing uncountable things to `count`: https://3v4l.org/WGmN2

May we close this one?
 [2018-09-29 10:10 UTC] nikic@php.net
-Status: Assigned +Status: Closed
 [2018-09-29 10:10 UTC] nikic@php.net
Yes, I believe the warning is sufficient. Using count() on iterators will generally not produce any meaningful result, and the warning should make that obvious.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Mar 19 09:01:30 2024 UTC