Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:81406 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 91783 invoked from network); 30 Jan 2015 07:23:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 30 Jan 2015 07:23:24 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.220.180 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.220.180 mail-vc0-f180.google.com Received: from [209.85.220.180] ([209.85.220.180:61300] helo=mail-vc0-f180.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 69/A7-47940-A613BC45 for ; Fri, 30 Jan 2015 02:23:23 -0500 Received: by mail-vc0-f180.google.com with SMTP id hy10so10347674vcb.11 for ; Thu, 29 Jan 2015 23:23:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to:cc :content-type; bh=2jARkFw9bBWL5jQu77+3ubtTWDMi9+saiDxHXsKLfvI=; b=Szzo/RHYa+b1XoM7LYgHf/7snsVteXJiev9HqSVqQDMMPhIBeRZ+xYOsVJRcGlIKyE RezPU4f8fCsbCgRbMP70vZY7sLolQN4jdmcgU/7VXJ6t8bPuKTNm1VeT2AtJ8ydAjXMx PksGy0W+HZZXWBnrfeSGYHuBi3Jpr0rj/Drt4jQkQTa0dr0i9cqj5lQ0E8MJRxhhZ3DG KAWUI3RCJ0y+ZjOSRoNrV3vM3elh2oP2hBg+N9RZu7OCeYoWFxO1Sgc/sNQwTsQkvQdd K1KmMfeAdvIc8Vd6d0i7LRs4kzeg3pdOWfkUvJySdFglpdfhkTgMwORSQ51KG8uqMxMw nLpA== X-Gm-Message-State: ALoCoQkrLlXFrJHmft4ZsOfugmLuSudg7xnua6r5g85WYbjlHWVNaBlGXK6u6opdlEIQjS/9+ahp2qsMnfNuZ0k23fTMpolh7HeCmyKVZP4kobyGECw1Dganun/ky716ZDtmAIx+s3TAhmj8jBNAfmPRoj7H1DHsdA== MIME-Version: 1.0 X-Received: by 10.221.18.136 with SMTP id qg8mr2637726vcb.27.1422602599749; Thu, 29 Jan 2015 23:23:19 -0800 (PST) Received: by 10.52.26.40 with HTTP; Thu, 29 Jan 2015 23:23:19 -0800 (PST) Date: Fri, 30 Jan 2015 11:23:19 +0400 Message-ID: To: PHP Internals Cc: Nikita Popov Content-Type: multipart/alternative; boundary=001a113399e69d721a050dd97a69 Subject: [PHP-DEV] [RFC] Fix "foreach" behavior From: dmitry@zend.com (Dmitry Stogov) --001a113399e69d721a050dd97a69 Content-Type: text/plain; charset=UTF-8 Hi, I'd like to start discussion about fixing inconsistent "foreach" statement behavior. The implementation is almost done. It not only fixes inconsistencies in a defined by RFC way but also improves performance in most usual cases, because now foreach by value over array doesn't require array duplication. https://wiki.php.net/rfc/php7_foreach https://github.com/php/php-src/pull/1034 I'm going to continue work on implementation improvement and may be fixing related behavior of some internal functions when they used on array iterated by foreach by reference (e.g. array_unshift()). However, the conceptual behavior defined in RFC is not going to be changed anymore. Thanks. Dmitry. --001a113399e69d721a050dd97a69--