Req #60577 [Com]: count(new EmptyIterator) returns 1

From: Date: Fri, 10 Aug 2018 03:15:29 +0000
Subject: Req #60577 [Com]: count(new EmptyIterator) returns 1
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-216707@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60577&edit=1

 ID:                 60577
 Comment by:         carusogabriel@php.net
 Reported by:        adam at sixohthree dot com
 Summary:            count(new EmptyIterator) returns 1
 Status:             Assigned
 Type:               Feature/Change Request
 Package:            SPL related
 PHP Version:        5.4SVN-2011-12-20 (SVN)
 Assigned To:        levim
 Block user comment: N
 Private report:     N

 New Comment:

In PHP 7.2 we've introduced a warning for passing uncountable things to count: https://3v4l.org/WGmN2

May we close this one?


Previous Comments:
------------------------------------------------------------------------
[2014-05-09 14:13:52] 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

------------------------------------------------------------------------
[2014-05-09 08:16:58] iam4webwork at hotmail dot com

If this is a bug, then why is #46322 not a bug?

------------------------------------------------------------------------
[2014-03-06 13:03:05] narf at devilix dot net

Technically not a duplicate, but very similar to #43650.

https://bugs.php.net/bug.php?id=43650

------------------------------------------------------------------------
[2013-09-12 20:33:14] levim@php.net

I confirmed this for versions 5.1.0 - 5.5.3.

------------------------------------------------------------------------
[2011-12-20 20:17:50] 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)


------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=60577&edit=1


Thread (8 messages)

« previous php.bugs (#216707) next »