Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:117571 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 30025 invoked from network); 22 Apr 2022 12:08:32 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 22 Apr 2022 12:08:32 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id C9F73180510 for ; Fri, 22 Apr 2022 06:42:47 -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_H3,RCVD_IN_MSPIKE_WL,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-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 ; Fri, 22 Apr 2022 06:42:47 -0700 (PDT) Received: by mail-pl1-f180.google.com with SMTP id q1so9763178plx.13 for ; Fri, 22 Apr 2022 06:42:47 -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; bh=wR/Z4JcQL7rrjtmvP8VFJpCS+3rTlwYRs5XPXzhaxvg=; b=m5U83jxnKLC0ZmVjgSbf8Ui87K7bAV10lvRoEHJWsadWyppdB0mmggu+LMVB1kvP6h s3Uv0TfmJkaq+tgXfaEp6wmSLKs6NbuywHGop9Ei3+a1uwBpoJs0BPc2rQgm6FGP72C+ jpYczi7fVLYp+l+NEfhvKxjcRBjn/wF3P8vorzKxYVh1TR55cYC43qRi4h9sE3RJDGKw dWR5qu+spd3VhYI9THHDOoJ2OrwtOUbYJqy4ke7FEM5pn4mqTevowrKGBBrZptdL/U2G r9diFaIN5DHtpoLOPgZzs9E9w2ETA0GggcSLApOPpbU2movalUxD2aEs2e0yiQ3AFwHc wymw== 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; bh=wR/Z4JcQL7rrjtmvP8VFJpCS+3rTlwYRs5XPXzhaxvg=; b=R2k0QjnCEQclpMMa7VLCnB8PD9soLn4dkia/Wrcyr7twnrUoYFcDAMvmYaue1eVAyU bL0miAUBh3lssREoQVR7W8OYw6/vi7Iw4Dv1wi9oWmYgnPCX+dJhofURWGmA+aXuB6mv 6LeJYzKnIic1xnuIxyh57hg1RrioHo92xsuWvTxgudlM7C/PgzPdLWq4iSMtpg8xPZJn Fn011iRGMjP6BkJnhN0mO2CDp7lPGhp+RJwVjzESwzW/o7+PnKKKf6UHli4L4GGBSVCu sHoSPSWHFfXFmfoQL6IKQUbswtyG3gnNBuv0odQ9KV0XKDx/k1SP302vhfBjUfAtjXwY vlPw== X-Gm-Message-State: AOAM531Y65BbvnBwPI1tu1bkqhHka1KT/ngyx/OwCijBOPSXMSA42FA1 N2i9+wj3AHyVoytG459yVruQGY9E94EUHCwv9fnc/X3h X-Google-Smtp-Source: ABdhPJzLbENiiPq2VfjMPit91hpFF+WXh6a+kYOiOVhEfC1EyTdshKvzhXuXhnZdjm6UkJ8srSQ6teC3ey95S6fvyGs= X-Received: by 2002:a17:902:b692:b0:14c:935b:2b03 with SMTP id c18-20020a170902b69200b0014c935b2b03mr4576113pls.81.1650634966292; Fri, 22 Apr 2022 06:42:46 -0700 (PDT) MIME-Version: 1.0 References: <6261d073.1c69fb81.a42c.d7cfSMTPIN_ADDED_MISSING@mx.google.com> In-Reply-To: <6261d073.1c69fb81.a42c.d7cfSMTPIN_ADDED_MISSING@mx.google.com> Date: Fri, 22 Apr 2022 14:42:34 +0100 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="000000000000d1dbba05dd3e66a0" Subject: Re: [PHP-DEV] [VOTE] Undefined Property Error Promotion From: rowan.collins@gmail.com (Rowan Tommins) --000000000000d1dbba05dd3e66a0 Content-Type: text/plain; charset="UTF-8" On 21 April 2022 22:45:17 BST, Mark Randall wrote: >Internals, > >I have now opened voting on Undefined Property Error Promotion. > >https://wiki.php.net/rfc/undefined_property_error_promotion As with your previous RFC, I approve of this in principle, but am frustrated how little time has been spent considering the edge cases, such as the ones I mentioned here: https://externals.io/message/117487#117487 It seems to me that we've got an increasingly complicated set of states a property can be in, depending on whether it's been declared with a type, without one, or not at all; whether it's had a value assigned to it; whether it's been unset; etc. If I am struggling to follow the distinctions between "declared", "defined", "initialised", "dynamic", "nullable" etc, how will users who start with PHP 9.0 understand why some situations produce errors and others do not? Regards, -- Rowan Tommins [IMSoP] --000000000000d1dbba05dd3e66a0--