Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117462 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 78022 invoked from network); 30 Mar 2022 16:55:47 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 30 Mar 2022 16:55:47 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CEDE01804C3 for ; Wed, 30 Mar 2022 11:24:18 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=BAYES_40,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-qv1-f42.google.com (mail-qv1-f42.google.com [209.85.219.42]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 30 Mar 2022 11:24:18 -0700 (PDT) Received: by mail-qv1-f42.google.com with SMTP id gi14so17585711qvb.0 for ; Wed, 30 Mar 2022 11:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Y2tlZGDfny5E1WabNaSd5giermba4Ei1QSoC9rqgz/E=; b=DsyF0hDvVHxsmsJmDulDLox0oGzdU+6o9lru24aK2P/SjOLn7VrWShTBHQXJdg/5w5 gyWw03VdhfHw07GvBVISne0XSC7WRRmEyUVUza36e59AecaYpTgPonY1Aj3a9PpvU7vE SspJr9M6igQQ7abchI3kLAtkfna4cqL+ke7nVyXB1wobIAreZ2K4pKKggoLWloGLE0W2 /Li+pLHvNb5fu7F1NCqiKxoxDyo+Dx9Vz/QHaV5Rx/6RgG8TfjznHmH7EJIb4Vg4Hatf +p3DM5J6a3CWBxhhukrYpMHA6GBzkyT102lexyK0racsbVjjoQLaxTtlsOlYITu0k7fn oJFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Y2tlZGDfny5E1WabNaSd5giermba4Ei1QSoC9rqgz/E=; b=eHkXuJJ1FDuEexAwc1wglarW9m6bg7EJ7Mm1SfvH6vP3uyYCrhg6UCD72RxRHBvSDy E9+ouACWy9DmkOxQkTWm0vhr7cMGStLQS6RoezNkdUG3g6VaFXumrJeGJaR0uQlzOz1s YZMS9YuVrnQGa5aUUcJvdAbPezqFg/wyo4Ms6CBp5vA50wXogcbHo6G9e9rydYhY1k8+ I/BodkC70AERvy3Nb747ibW/tFCUqHTb+DpVzk+4u2gSkGQcl2e1rR1jhpSb3BuQbJfZ 9bvCscsMc05RkcHcAQy1gbptoOK7Tb8aHNxEcM538YxuuqfE1iqu1RetYoTrHGhr+gAB YV0w== X-Gm-Message-State: AOAM531BHA/bUvXUNk6iFQu1Q7xsPCV3YGZsm+70+qZ2mv34vJt3TTd2 z9Aiit34wFy+T9G5+ObO2rLwdlRomok= X-Google-Smtp-Source: ABdhPJwHt3qypgRVBjwW4WA9dFUj4MFztTcQYx2udqOit5mNwCyeyYPQyHVQ9HFAyXg5S/eipOBFAA== X-Received: by 2002:a05:6214:e82:b0:441:3231:4bce with SMTP id hf2-20020a0562140e8200b0044132314bcemr31955292qvb.89.1648664657920; Wed, 30 Mar 2022 11:24:17 -0700 (PDT) Received: from mail-yb1-f175.google.com (mail-yb1-f175.google.com. [209.85.219.175]) by smtp.gmail.com with ESMTPSA id n131-20020a372789000000b0067bce1ac001sm11132254qkn.71.2022.03.30.11.24.17 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 30 Mar 2022 11:24:17 -0700 (PDT) Received: by mail-yb1-f175.google.com with SMTP id x20so38085497ybi.5 for ; Wed, 30 Mar 2022 11:24:17 -0700 (PDT) X-Received: by 2002:a25:d7d7:0:b0:633:c348:31d3 with SMTP id o206-20020a25d7d7000000b00633c34831d3mr987770ybg.298.1648664656789; Wed, 30 Mar 2022 11:24:16 -0700 (PDT) MIME-Version: 1.0 References: <9ecce8c9-c8bc-93e3-25f0-386c2c41ca1a@gmail.com> In-Reply-To: Date: Wed, 30 Mar 2022 19:23:41 +0100 X-Gmail-Original-Message-ID: Message-ID: To: Guilliam Xavier Cc: Rowan Tommins , PHP Internals Content-Type: multipart/alternative; boundary="00000000000038d8c905db73a774" Subject: Re: [PHP-DEV] Undefined variables and the array append operator From: phpmailinglists@gmail.com (Peter Bowyer) --00000000000038d8c905db73a774 Content-Type: text/plain; charset="UTF-8" On Wed, 30 Mar 2022 at 15:33, Guilliam Xavier wrote: > Not really a "compelling reason why we should keep this inconsistency", but > I have occasionally relied on array autovivification *for sub-dimensions*, > I rely on this often when remapping data for analysis. These scripts are run a handful of times and discarded. Autovivication keeps the code short. Here's a snippet I wrote yesterday: $out = []; while ($row = $res->fetchAssociative()) { // ... $docId = $row['document_id']; if (!isset($out[$docId])) { $out[$docId] = [ 'application_id' => $row['application_id'], 'document_id' => $docId, 'filename' => $row['filename'], ]; } $out[$docId]['labels'][$row['document_rejection_reason_id']] = true; } Naturally I would prefer to keep this behaviour for arrays. Peter --00000000000038d8c905db73a774--