Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119122 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 72124 invoked from network); 13 Dec 2022 14:32:20 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 13 Dec 2022 14:32:20 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 69F79180507 for ; Tue, 13 Dec 2022 06:32:18 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 13 Dec 2022 06:32:17 -0800 (PST) Received: by mail-wm1-f41.google.com with SMTP id v7so8520250wmn.0 for ; Tue, 13 Dec 2022 06:32:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=craigfrancis.co.uk; s=default; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=R6fmQltsjmHfkWjTmq7wNyq3nh/JfWC+8PJn/EfcRDg=; b=MCKtA/DjbJreWg/dyIFoV+ybB0x+y1Ti/GCXMvFnWaYTa90tswz+7VBecNvSV3bdZq rYOsTH75aoS3GYFgqf3IB5l+x5z8DiABn5RbUWccB6shNrLmVp7oPEHW7raa4NWZ5+S9 KsBbRJ0bqwGeU/QYx3cja3qKiVVbk+aKMdkGg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R6fmQltsjmHfkWjTmq7wNyq3nh/JfWC+8PJn/EfcRDg=; b=YuAxWfJoF78JGBxetjGV8LGuQVCnzuMs+EaiCDnjIUdh03d+fRw3M3GqrBp+y4IJJc y3e5wkVXM/Ly7r77SZoSKen6Corkdk9BDn4RD+b+i4caQvoMDtfmZX97l74j8Dws6D0T s0wHd3DK6evOTjBeWrVcdWSE9A0LQgE3Dx8PlqmKwmN/kEKIWr5HJ2qGbmzwyQIAHGPp oaVHu8p+mok4R+FLciOuj71Rqp3GoPDCEn0Y51ApVLKbz3QCD7+VBA/4+3acA7uQib2a eyi2k9zexyjR+Oiv2B8dzoSX15Mx93TfjicNlsKNystoNt5TWNDNfbEFGtcmJ0RlZ/b8 E69Q== X-Gm-Message-State: ANoB5pmCadSnRYu++cHBORLk/RDhig3oaaftyzDktih3XlipC9eCw1S7 3Su/lmgh8dWm9G5jxCG+u9pkNw== X-Google-Smtp-Source: AA0mqf45bKHQUjkQhlno1Vwki+cJafwJt9vS8Mpee4OcV/1J5caSK3+NMC40SRy3rvl2s6TaSnMD4A== X-Received: by 2002:a05:600c:3ca5:b0:3cf:ceac:94d3 with SMTP id bg37-20020a05600c3ca500b003cfceac94d3mr15389109wmb.13.1670941936659; Tue, 13 Dec 2022 06:32:16 -0800 (PST) Received: from smtpclient.apple ([92.234.79.97]) by smtp.gmail.com with ESMTPSA id z18-20020a1c4c12000000b003d1e4120700sm15310694wmf.41.2022.12.13.06.32.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Dec 2022 06:32:15 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\)) In-Reply-To: Date: Tue, 13 Dec 2022 14:32:12 +0000 Cc: internals@lists.php.net Content-Transfer-Encoding: quoted-printable Message-ID: <198FF5D4-9191-4C8C-9E5C-31DF2039A7FF@craigfrancis.co.uk> References: <5fe0d8a9-d305-9c9d-ca36-1ca30de87b78@cubiclesoft.com> <38E9E8ED-F266-4EFC-8E17-DDD60F45EADA@craigfrancis.co.uk> To: Rowan Tommins X-Mailer: Apple Mail (2.3696.120.41.1.1) Subject: Re: [PHP-DEV] Revisiting RFC: Engine Warnings -- Undefined array index From: craig@craigfrancis.co.uk (Craig Francis) On 13 Dec 2022, at 12:39, Rowan Tommins wrote: > On 13/12/2022 10:11, Craig Francis wrote: >> The null value can come from many sources (e.g. = GET/POST/COOKIE/databases) >=20 >=20 > These two examples are interesting in conjunction: $_GET, $_POST, and = $_COOKIE will never contain null values unless you have code writing = directly to them, because HTTP has no representation for it, only empty = strings. Most frameworks return NULL when the user has not provided the value: $search =3D $request->input('q'); // Laravel $search =3D $request->get('q'); // Symfony $search =3D $this->request->getQuery('q'); // CakePHP $search =3D $request->getGet('q'); // CodeIgniter This is also common, to avoid undefined indexes (as you suggested = earlier): $search =3D ($_GET['q'] ?? NULL); And some developers use: $search =3D filter_input(INPUT_GET, 'q'); That said, I'm glad you have found a positive example from this change. Craig