Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:104861 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 68913 invoked from network); 21 Mar 2019 21:48:25 -0000 Received: from unknown (HELO mail-ot1-f42.google.com) (209.85.210.42) by pb1.pair.com with SMTP; 21 Mar 2019 21:48:25 -0000 Received: by mail-ot1-f42.google.com with SMTP id e5so5349991otk.12 for ; Thu, 21 Mar 2019 11:40:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jnIFa6LdN5b0wEv8E0FiILR+Djl9+y3mHgRV0VWyzW4=; b=LeigPdD50nqogvzRR/5S2hc06U328KOxGVYD6PmiJhx/sqsfxhP3m1gy8BN1J/H48p XJVZN0XZZ+am45J6hJWHEh66JsnSKd+4R89VmQ1yI2B13Zg2PiZsU9QAUC7u6i+nJr7l JYYZ6f8h3DAoLesyL9qdzlSjhtMqpD5H38YnKnNRf9VBW+/d5bN2hR2g/od+Y8KqwzRp Pbwte9TScPO+GY+hKFVKtaC9TsTuE5+qjWCWPdpoRSqo0L/jP0Ix1MdNriIXZJ1vEU9w KfUHQa2ECNYjwAGXVBJi032NHD1na4MTFzS6YE9QRuLYbqW+FKgC3mUZnDm2gWcwz6vV r3Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jnIFa6LdN5b0wEv8E0FiILR+Djl9+y3mHgRV0VWyzW4=; b=p5e6ROdKrGFXIv1ZzAgf8ngFWpWvJ3JF9rHd5g4vOZcalohdyRIlLNIjVwow61MK6G TRfD7tfWsN65hPWUwC1nG8mgwmpl6uknibI/ERZZG3mTDZkFBR04khw6iOob0xizUGMm kun/umttlyaTq1CoUGvyt4Vy9tnHn4yQ0RKmfR/31Rg1uL2XjPvUaipzABYj+vZfVlmC VvyIzYGLO2J7RS1WKMmuFSZfxUqLky8srLJ041VqETSxrMbmOHWp36+4fU9LmgBtn9DD kb0n29bprlBJzfNcvGaHXZoAp4Yw4P0fqPOZPEOSq/gkS/vpceeQ7G80L/rt7YxaKSfb 6XUw== X-Gm-Message-State: APjAAAXitIH9lCTPATMyvi8RMhWseJX/QZNeWuUZilcDQjr9gDH5KEew aZr0zAsJJvLjVRn+pczaLqzeSVT8URr2BliXjFk= X-Google-Smtp-Source: APXvYqwpyeGvqjBuwROJwqBu8syI/d9VOCRjBPnC6WCBepgFP0CZcxgzY4H+SYp58s/qdyXXLtnJYZYQ3AzEh32Deyg= X-Received: by 2002:a9d:76c8:: with SMTP id p8mr3921901otl.34.1553193636786; Thu, 21 Mar 2019 11:40:36 -0700 (PDT) MIME-Version: 1.0 References: <85417a73-a391-c9ad-49aa-5b88c65b0900@gmail.com> <5c8ea43d.1c69fb81.e50f1.7d18SMTPIN_ADDED_MISSING@mx.google.com> <0d34b3b1-866e-4bab-9a8f-3c70f1fc9721@www.fastmail.com> <752c83ab-0e6f-d8f5-ff15-e1f75b5d04b5@gmail.com> <301552a9-6f01-3177-0e57-3d9aac54cc0c@gmail.com> <7A288F12-1227-4E78-8F9A-0959432F02D8@gmail.com> In-Reply-To: Date: Thu, 21 Mar 2019 18:40:23 +0000 Message-ID: To: Rowan Collins Cc: PHP internals Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] RFC Draft: Comprehensions From: robehickman@gmail.com (Robert Hickman) On Thu, 21 Mar 2019 at 16:15, Rowan Collins wrote: > > On Thu, 21 Mar 2019 at 15:21, Robert Hickman wrote: >> >> In this case nextIf() would have to be implemented something like: >> >> function nextif($someCondition) { >> foreach($this->iteratorValue as $x) { >> if(> yield $x; >> } >> } >> } >> >> iterator_to_array would need an internal loop to pull the values from >> the generator. > > > > I think it would be more like this: > > function nextif($someCondition) { > do { > $this->currentIndex++; > $x = $this->items[ $this->currentIndex ]; > } while ( ! some comparison of $x and $$someCondition); > return $x; > } > Thanks, that makes sense.