Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:96936 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 78708 invoked from network); 16 Nov 2016 21:02:50 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Nov 2016 21:02:50 -0000 Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.161.196 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 209.85.161.196 mail-yw0-f196.google.com Received: from [209.85.161.196] ([209.85.161.196:33866] helo=mail-yw0-f196.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 2D/07-05303-979CC285 for ; Wed, 16 Nov 2016 16:02:49 -0500 Received: by mail-yw0-f196.google.com with SMTP id a10so16384139ywa.1 for ; Wed, 16 Nov 2016 13:02:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=5Fty0e4pm/BiUvMLyK7ZiSbvqbH2OmYfif/+TgYRHA4=; b=NHHIAZEqwEuul8FtdrnkdBC0VJV5Lzkn03bgu8DPeo4zDkuyML9u5YFFKzt/iaBe7N shgrgEEu5a3p/fhXpUAnp4JL7rnTnBaJ9hUOAdsRNZfn13yskMvDqqG1mTJX+ebFj3ri a2zmmlMMX1JWPfp+oPSQyVBkU8RYN0e9A6ssrz96DsVn/nmg832oiAPgJDAs9SgN0ehl CFFvgE0/f1XmJD0pc1GgRqapllgkm4Sgiiqnt958FP5yjfOYEOcJuwPljzKC+6hoaMoC vEcs5icL46pq/7ewPeoAE6pkHZK6xyNge7iGZvnqUfyewxxkv0RRwMnHCf6qK0TRu5bA HQuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=5Fty0e4pm/BiUvMLyK7ZiSbvqbH2OmYfif/+TgYRHA4=; b=bqJSgNHPPMHNwi8N4hWIiyg9SGOWsgTSBR3cz9OX0YaJk70iLYPpdxGKUIKKfkvMiv 7yYtccvEqGZ+/e1jiOoGCOx2SvWPb73dDgUUxsUSBydAQ+NM3FzehNHb6UVpCFr22urh X0Kt71YoWZxkMC1hXy2emm/Mdtreup7tTqMD3kbbC11qSb/7UYDd1oWBlxbsT092TnBp GS/LsCSM/AuRTwKy9wj57aeBYa76ziPBq3h3exboKFm/endT56TnnBQNkujvQrmP9Kai aLaEQ+Z2b/KeA1DuNldy4SS833PknlNpeXnQ/NE/sXkjZpyugqf994nF0wkNy9iZcBUx YXTQ== X-Gm-Message-State: ABUngvd2uj2ag8EatOccDwast/ajie4QPyKFy6yHwIRZvf/IOH0EK7GsLX3x9i54B2QtLLMHfHCPp3OrlaQOKw== X-Received: by 10.129.79.207 with SMTP id d198mr4896684ywb.64.1479330165909; Wed, 16 Nov 2016 13:02:45 -0800 (PST) MIME-Version: 1.0 Received: by 10.83.67.21 with HTTP; Wed, 16 Nov 2016 13:02:45 -0800 (PST) In-Reply-To: <9c4e33c3-cd8c-dc29-89d2-c91abfb702e0@gmx.de> References: <2b46dcb5-03e2-59dd-b04f-d1877fd603bc@gmx.de> <9c4e33c3-cd8c-dc29-89d2-c91abfb702e0@gmx.de> Date: Wed, 16 Nov 2016 22:02:45 +0100 Message-ID: To: "Christoph M. Becker" Cc: Craig Duncan , Niklas Keller , Internals Content-Type: multipart/alternative; boundary=001a114da1500b73da0541716587 Subject: Re: [PHP-DEV] How to detect classes with a count_elements handler in userland? From: nikita.ppv@gmail.com (Nikita Popov) --001a114da1500b73da0541716587 Content-Type: text/plain; charset=UTF-8 On Mon, Nov 14, 2016 at 2:22 PM, Christoph M. Becker wrote: > On 13.11.2016 at 22:10, Craig Duncan wrote: > > >> How about just making those classes implement the interface instead? > > > > Christoph pointed out that there may be classes in extensions that use > > count_elements. > > Furthermore, letting those classes implement Countable could break BC. > How would this break BC? SXE even already has a count() method, and count_elements respects overrides of that method. Clearly SXE is supposed to implement Countable, it was simply forgotten. > Also it would make userland code simpler: > > is_countable($thing) > > vs > > is_array($thing) || $thing implements \Countable > > Good catch! > > Note that Craig has added is_countable() to PR #2185 (which implements > the RFC). In my opinion, that is okay, but if anybody has objections, > we probably need another RFC. > This should be done as a separate change IMHO. Nikita --001a114da1500b73da0541716587--