Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:62734 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 59331 invoked from network); 3 Sep 2012 12:40:41 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 3 Sep 2012 12:40:41 -0000 Authentication-Results: pb1.pair.com header.from=lester@lsces.co.uk; sender-id=unknown Authentication-Results: pb1.pair.com smtp.mail=lester@lsces.co.uk; spf=permerror; sender-id=unknown Received-SPF: error (pb1.pair.com: domain lsces.co.uk from 213.123.26.187 cause and error) X-PHP-List-Original-Sender: lester@lsces.co.uk X-Host-Fingerprint: 213.123.26.187 c2beaomr09.btconnect.com Received: from [213.123.26.187] ([213.123.26.187:27874] helo=mail.btconnect.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 62/A7-20751-645A4405 for ; Mon, 03 Sep 2012 08:40:38 -0400 Received: from host81-138-11-136.in-addr.btopenworld.com (EHLO _10.0.0.5_) ([81.138.11.136]) by c2beaomr09.btconnect.com with ESMTP id IWL52883; Mon, 03 Sep 2012 13:40:35 +0100 (BST) Message-ID: <5044A53E.7060509@lsces.co.uk> Date: Mon, 03 Sep 2012 13:40:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120604 Firefox/13.0 SeaMonkey/2.10 MIME-Version: 1.0 To: PHP internals References: <5040DC47.8000305@ajf.me> <5040F4D9.80206@sugarcrm.com> <5042946A.80204@sugarcrm.com> <5042A7D6.7050001@lerdorf.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mirapoint-IP-Reputation: reputation=Fair-1, source=Queried, refid=tid=0001.0A0B0301.5044A541.0026, actions=tag X-Junkmail-Premium-Raw: score=7/50, refid=2.7.2:2012.9.3.121215:17:7.944, ip=81.138.11.136, rules=__MOZILLA_MSGID, __HAS_MSGID, __SANE_MSGID, __HAS_FROM, __USER_AGENT, __MIME_VERSION, __TO_MALFORMED_2, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __CT, __CT_TEXT_PLAIN, __CTE, __ANY_URI, __URI_NO_MAILTO, __URI_NO_WWW, __CP_URI_IN_BODY, BODY_ENDS_IN_URL, BODY_SIZE_1500_1599, BODYTEXTP_SIZE_3000_LESS, __MIME_TEXT_ONLY, RDNS_GENERIC_POOLED, HTML_00_01, HTML_00_10, BODY_SIZE_5000_LESS, RDNS_SUSP_GENERIC, RDNS_SUSP, BODY_SIZE_2000_LESS, BODY_SIZE_7000_LESS X-Junkmail-Status: score=10/50, host=c2beaomr09.btconnect.com X-Junkmail-Signature-Raw: score=unknown, refid=str=0001.0A0B0208.5044A543.017B:SCFSTAT14830815,ss=1,re=-4.000,fgs=0, ip=0.0.0.0, so=2011-07-25 19:15:43, dmn=2011-05-27 18:58:46, mode=multiengine X-Junkmail-IWF: false Subject: Re: [PHP-DEV] Re: Are exceptions allowed in php core? From: lester@lsces.co.uk (Lester Caine) Derick Rethans wrote: >> I think the first thing anyone who uses generators must understand is that >> >they are iterators. > You forget that not even everybody that uses PHP knows what an iterator > is. For all they care, they have an array they can run foreach() on. > >> >They should be compared with iterators, not arrays. > They shouldn't be compared with either. They are magical things that > happen with a "yield" keyword. Seconded ... But hiding things behind 'magic' is the problem here :( Personally for 'generators' to be any use to me I need to be able to ask them what is wrong rather than be blown out somewhere else because something unexpected happened. If it was a data stream then I'd just check $gen->error(); or $gen->noofrows to see what had happened ... nothing magic at all. But using magic necessitates exceptions since there is no other way of handling the errors? Is there no way we can 'check the state' of a generator in-line ... $gen->status for example? Surely this is just a matter of passing an 'at end of file' flag for example where you ARE reading an empty generator? Rather than just bailing out to an exception? -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk