Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117085 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 67306 invoked from network); 21 Feb 2022 07:45:09 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 21 Feb 2022 07:45:09 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id A2D47180381 for ; Mon, 21 Feb 2022 01:04: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.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,NICE_REPLY_A, RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (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 ; Mon, 21 Feb 2022 01:04:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1645434255; bh=PYn8wZRLn1BPrwCFutKnAP7uDZjlTpuLQSLWPnRMXfM=; h=X-UI-Sender-Class:Date:Subject:To:References:From:In-Reply-To; b=jJndZh244E+qjOJCT/xcrCbP7dh/tvwG+RvO2fA0NnTGGEGrGSiBky/RcxNlFSlI1 S9STLM0+uGQC7W/0J3x50aE7xdRQFuxLB5w+ETlpO3MIFducSXitFujedARt1WT/TK McKuSivJTnla51oUADYtgBwr9BU5/2S+rlsl2+x8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([79.220.67.100]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MNbox-1naZUq12UN-00P3cF; Mon, 21 Feb 2022 10:04:15 +0100 Message-ID: <983552d8-11f1-b5bc-fb82-148347982fda@gmx.de> Date: Mon, 21 Feb 2022 10:04:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 Content-Language: de-DE To: Craig Francis , PHP internals References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:BIE01+IAYvMZ8TDqs1zqXUH1/U+jljwer5Aky+d6qU+V9INahUQ EyzjB//mECnTULKRk5tbfVrBTcENLHqO9EeWydJI4umSwS47KmeynA8hY1NUjqfSxwx/5O/ QYjtZ7zBdX8TuTCuaFQiH1r5oyJO3PPcODsOHeQjiuxC9HpSlRIzeoA8BWxTyD6ZtrTMPXF 5KuRepdC1N5jNqA0KoCFg== X-UI-Out-Filterresults: notjunk:1;V03:K0:GIhz+lj+a6c=:+FcrjDzIyrmTZzCeRyBztB QzUgtRGTEtNzNBr+8iBpWKZeoSDsqOEKCkc/+8tn+GmQ/abDbR25Ri6QyUtg1/J2ILleFFXjq ts6mk2Izk5BIUP/McIdZCg+jbFtUWZYdaJLfyr5AisowFe3C0lyWcaqrUzmGWxaYjrtU+PrsJ Nlx72h4SgG2AHh1Pf+8zMe90tpZmAw1cT0AeY/nqJg7xQg12mbcV4kellOL6JXDQuD9P1rMAM H85v12VXHwW8WK3MPmlYxRgi3zF/BdEJ8N76scUoDoXtT3Rh2olxLq9pnrt4K8TY4pw8iKgTy utNvWoXFBuT/kuPYl3QaWWwIVCsSYTXgZQTIc5VJp3Krtk1yc06I3JKMROV0Ry9cumB5OAQay 8Als+HTFleqCE2xcMRo7e3nZWdZ3AU8MIiJz0JiuHDswk6s5ft9Xp13BNWH5iz7YcnFxmnJYv CYGoAavUMHp4hu7GQ5ar4sQAlvvFwyIGIkHlk2u6IuHJE0YLAUIJjlKcuHz7vb20TeUfhYD3/ 7LxR6ctJXawLjkOWeKwIjzhnQwfI5jD8x0+Rlt3fO6zJWNymMNxFbRCsPOMIwQNbNVOi+bGtm XPaRigAQN6bBQ9RvqOA9P3G8wFVg2LRs8a35BpkFJ/ZErfHufFDFX3rUID3W8A4wKcq0Wx+oz UOcqBKO2vZII5AxDx3/t7mukIYD4T/cA/GIYC3sZ2k79SfvifFXqf/vxAwh9QCT3TrBQpAAiY wGahZCobz0reM4sGpe9UkDLKkSuW2Mw0rcKh8ENT82uo9zoBGuB4RcC7ayYYF8bMX10S2tz+E 8axK3mvJxN2qSZYbvXwJ8uMbf1MCx1nd6LZH0OwlDxXlQDO+W+O1/UByXphoXFSPqbpqQY1hV 19fR1Ph/UZHG6XMd0WKUeJNOkVeMcZDcyy1PQ87Z46vN0hYQUF8iAAQieAr+79Ug0fVokODof mUChYykSDRrH6q79CcgrQgDj3CzVaHylbA0Zm72oh9rmkutYz7Eqvrh9NZNx8mYlaeugG1UFr 8Hn8WA5BCBNpvwrQoRREtNLqyMAkEiP7Kn925jc4zeqFoaYf0ibOlohMV2ZrYjzAyJRflODx/ Vt0TaH49Cfv7uU= Subject: Re: [PHP-DEV] Allowing NULL for some internal functions From: cmbecker69@gmx.de ("Christoph M. Becker") On 20.02.2022 at 21:38, Craig Francis wrote: > On Sat, 1 Jan 2022 at 23:17, Craig Francis wr= ote: > >> Draft RFC: >> https://wiki.php.net/rfc/allow_null >> > > > I've been over-complicating this... why should NULL be treated so > differently? > > $values =3D ['a', 1, 2.3, false, NULL]; > foreach ($values as $value) { > echo urlencode($value); > } > ?> > > It just struck me, this whole thing is about type coercion when not usin= g > `strict_types=3D1`; and the 8.1 change has introduced an inconstancy by > deprecating the coercion of NULL, a frequently used value. That "inconsistency" had been introduced with PHP 7.0.0, i.e. right when scalar type declarations have been introduced. Passing a null to a non-nullable parameter of a *userland* function throws a TypeError: . As of PHP 8.1.0, internal functions behave the same as userland function in this regard. =2D- Christoph M. Becker