Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119102 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 23038 invoked from network); 8 Dec 2022 15:14:45 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 8 Dec 2022 15:14:45 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 0BA2E1804A7 for ; Thu, 8 Dec 2022 07:14:44 -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.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,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: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (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 ; Thu, 8 Dec 2022 07:14:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1670512480; bh=rEadxTBRYwO7QFkntFqaWM4dQKX9ASowfSaNlOyfhUk=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=ifINyjdSDw+yqOc7qzCIv+XL4iYUjp1z9Sw89UQbmPjvNnqn09aLIXU90X0zKsvG4 v0b0Q3cyWG3zqHm8vGoD8rVIcgyX5HMHQszQmpwbaIAI65PPs1fkXf6ZmUS0LRnvYn 2qkz8+r1gMmYpXXWYad2MK1vqvW1s5T2JPQ9mtx/xqLRztRrET7a0xGYHzPcut8jJN IdhQ+6BwvZNjYMUJju5O7FnL+cOrvwlSJ8iH4/Lyr8aE1I2RiV3uO+kSyx93BF84x8 GKXUrtvQVBLopMVxqhhZmIRqAEjYGm/Q7/0ESRUOnaXs9DyPDTN8jC4m0Nwst5GJS1 ymCCzBKCEj71g== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.2.130] ([79.220.80.221]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mzhj9-1ognkP2nL7-00vdI5; Thu, 08 Dec 2022 16:14:40 +0100 Message-ID: <7f80a08c-4ae2-bc24-69ea-773a536cc2ad@gmx.de> Date: Thu, 8 Dec 2022 16:14:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 To: Robert Landers , Thomas Gutbier Cc: internals@lists.php.net References: <994B8839-2A69-4522-95D7-BF1B19831677@php.net> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:BM8cA6Gsq0UYpdHd5MoB/CBDzRV9suLGltCBkVQ5+kwwJWn0df5 YYIkMPFEXYrMAUo9rfQZq8gY12fELJfYL7reO/nJ/zVh/8LQr6Zf5afIJHQMZLZYnvV32gd 1BBQj8jKHQUbB3wVuV5rMVFIPbT/r3vTQkQEokzbcz09l9yRETPBFLm+q5sSRsHzWEiEpBl Mj29x+1aErMfiBhLWlC5Q== UI-OutboundReport: notjunk:1;M01:P0:3fd4ohotTPs=;7fvu4Gn2r7HQIwWJu5JEgHR7kcu /Xyn1HDdFYSOrMalJGuZ0WpzSFD9kCCNKPK/qk/OUeLeotIER2FXTg6O0GCHGt2uOJHzbxEZX Xjmr3j8SZikYP07zeCuV+cto3dgHQWJQrjUyXeshlEMzPxwxCX3P8bo7GXJO4rw5pnZaKdi2P bRIBlj6hIxkv+o4x3Les+7Vto778I5j3nW4cr+aUxYNxZYj7UI/Erk032r6QlhvIu26GvpDE5 E9zNJH3HBCGCngf4bxBNv5VYA51jCiW8Z8teyAYqchMB3VXxjVTnmGVwdbIlISQ+lDArwtI4D Qa+QFUFW2aMEH8vdQbx/j49bj1Ml4CCqrQc/97VHHhcqzB7/y8Hzu5XeBF/BPOOeFwAt21OOS 8SuxyRdwYlm96ouBfJQChkKFOYZj7qynbfeAi0iTqj9Jie9iMelrvl1Ux6ZOfikSf/BWY0kl3 I1NvfZ4tOvAeUWvWMYZiukx+8mq+riiGFaluU+yCbDi4ZI01mrvFakYscoaYCyJH/IwYfHslY JmEl9YfVB/PGLbT2UhZSDABpwTxnYbLv1ALGaeUS36gKwi+KfbUzmg1tdya6Lq0SsFOuawECH 9dgsMCuuPIH2VaD+R1PPDdtqCRw1uYZOObnwtkaxF9FTwGn8qJy983UU554wwW7tK8ZEae9IH kqkLZaeyltnxY6qbi15qyA2i4JfE2yDrSeLP1kMFB9C0n/vfEiNtwKHuteQ79x+I6F2A55kWq u1+0Km6ayfK+Ri6dTG2LUVjTVCw2QQ+6k/LlZKgNV0sUuIuzcOVvERfBtZ4JUtiXZlgUkd8mC JkxFi5dvfoYhwIeg4U9LuudauHLrtAqoTV45pgaKz2nEWCaE5DpQQdr07/CL4+ZgWnuvCI/ar ADvZsqBiimgGalAHo5iNA1dYH2wk9QABmHBkn7rzywvpVjS920AZ3OJoHIK/4ekEokzO9+lZm dt0AcQ== Subject: Re: [PHP-DEV] What's new in 8.2: DNF types From: cmbecker69@gmx.de ("Christoph M. Becker") On 08.12.2022 at 15:40, Robert Landers wrote: > On Thu, Dec 8, 2022 at 1:39 PM Thomas Gutbier > wrote: > >> I think in this example the check for null can be removed. >> The feature is so much more useful than presented here. >> >> (https://www.php.net/releases/8.2/en.php#dnf_types) >> >> class Foo { >> public function bar((A&B)|null $entity) { >> - if ($entity =3D=3D=3D null) { >> - return null; >> - } >> >> return $entity; >> } >> } I think accordingly there should only be a single if-statement in the PHP < 8.2 code sample. > I'd also like to point out that this doesn't cause a fatal error, at > least in the latest RC (I haven't tried the official release yet). > > trait Foo > { > public const CONSTANT =3D 1; > > public function bar(): int > { > return self::CONSTANT; // Fatal error > } > } > > class Bar > { > use Foo; > } > > var_dump(Bar::CONSTANT); // 1 > var_dump((new Bar)->bar()); // 1 Indeed, this example is borked. There is no fatal error at this place prior to PHP 8.2.0 either; rather, line 5 raises a fatal error ("Traits cannot have constants"). =2D- Christoph M. Becker