Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117204 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 76236 invoked from network); 2 Mar 2022 12:39:04 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 2 Mar 2022 12:39:04 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 8B8D4180555 for ; Wed, 2 Mar 2022 06:00:33 -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,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (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, 2 Mar 2022 06:00:33 -0800 (PST) Received: by mail-lj1-f181.google.com with SMTP id bn33so2417077ljb.6 for ; Wed, 02 Mar 2022 06:00:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=craigfrancis.co.uk; s=default; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=QdOWjvqD68o12FdtinR4k2hRd5S+qvB60mtJWkNn4zg=; b=hF/eK9Od5MSb0vC1oVon+I8zB8HR1mwH+Tsf6u49rMPNHR7Jj0swL2tmXduwQEf+2h vr//bYFPHxdYSn4VaeAiptkN4HBxr0O8yiq0wG5vHEUI41huJmXSAz1Bzw7bSutLGNDE hJ5CKdOAqHqDIYZinuQOVkUb7pwjRDFvqEcco= 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=QdOWjvqD68o12FdtinR4k2hRd5S+qvB60mtJWkNn4zg=; b=CQhQNCoQDz0BkCICC+u14vggnx0In4E4jrXy8LdRzS9aoeseghSVFVn553ii7daNDK y7dWmT8SipE670dEe6bdn4CW9hDN2etsmkSJ9NE9pfIe9F8ImiAYC082QNQvq3+5YW2X 9zVizwMRzO/m2NLvJhU+++NVQu4NTcS2MHG+CJl7oyHOOQ8UClLjpKrKoTKLtyNF02b+ BsNWBm3HFml2MI0ZHeoBelIomzefZYOxtzjD2ls2NGeg3uke/FJ669ZSFxKB7S1sz/5t 1w6UbMfrMKnOTNHdCEikZvE79nPJ8Ou/sM1CyB33jiJTMnsghd/Q3s0UHulOmBvZI5tZ n5HA== X-Gm-Message-State: AOAM531CRhRmZiCVULhyrQ8hEx5R8HCzxkvMaBeIq1kyDxV5sD6uyn2k Ch6B5ugmxFMdTs+2OFcWUJJ6FzMyig1hHFGPh3ZMew== X-Google-Smtp-Source: ABdhPJzytSElE/hH+rhtGI7yAp8DY9fAhcIkGZiBtdvAy65sLVCqkc95/vmAXQq+anZiomVA3UOw4VwwgjiUzE5kAWs= X-Received: by 2002:a2e:a305:0:b0:246:4233:3848 with SMTP id l5-20020a2ea305000000b0024642333848mr20012815lje.3.1646229631208; Wed, 02 Mar 2022 06:00:31 -0800 (PST) MIME-Version: 1.0 References: <983552d8-11f1-b5bc-fb82-148347982fda@gmx.de> <5494eaa7-2fa6-8364-9683-a2c8c9789d81@gmail.com> <69642616-72b7-44fe-97a7-27ae03bc8fce@www.fastmail.com> <7fbed755-42e2-d023-285f-39863a97f297@gmx.de> <3665C848-B4C3-4528-AEFA-02C868748AA8@cschneid.com> <0b5bc29d-3814-0e1d-b94a-47790019c778@gmx.de> <4bff3f23-a3ec-4416-f44e-1f4f5d7e0caa@gmail.com> In-Reply-To: <4bff3f23-a3ec-4416-f44e-1f4f5d7e0caa@gmail.com> Date: Wed, 2 Mar 2022 14:00:20 +0000 Message-ID: To: Dik Takken Cc: internals@lists.php.net Content-Type: multipart/alternative; boundary="00000000000063261805d93cb4ea" Subject: Re: [PHP-DEV] Allowing NULL for some internal functions From: craig@craigfrancis.co.uk (Craig Francis) --00000000000063261805d93cb4ea Content-Type: text/plain; charset="UTF-8" On Wed, 2 Mar 2022 at 12:26, Dik Takken wrote: > So, to get this crystal clear, this is my understanding of what you are > proposing for passing null to a non-nullable function parameter > (hopefully my ASCII art will come through ok): > > > which | strict_types | PHP 8.0 | PHP 8.1 | PHP 9 > ----------|---------------|------------|------------|---------- > user | 1 | TypeError | TypeError | TypeError > internal | 1 | TypeError | TypeError | TypeError > user | 0 | TypeError | TypeError | coerced > internal | 0 | coerced | Deprecated | coerced > > Is this correct? > Yes, that's correct... although I'd be doing this for 8.2, to avoid TypeError exceptions being introduced for non `strict_types` scripts in 9.0. This is based on the feedback from the quiz and here; so type coercion from NULL would continue to work, like coercion from the other variable types (string/int/float/bool). Craig --00000000000063261805d93cb4ea--