Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119100 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 17664 invoked from network); 8 Dec 2022 14:40:19 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 8 Dec 2022 14:40:19 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 122A318050B for ; Thu, 8 Dec 2022 06:40: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,FREEMAIL_FROM, 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-oi1-f179.google.com (mail-oi1-f179.google.com [209.85.167.179]) (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 06:40:17 -0800 (PST) Received: by mail-oi1-f179.google.com with SMTP id t62so1556723oib.12 for ; Thu, 08 Dec 2022 06:40:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cXv7xTXJ8m9Tx20Z39ZCjZ1qel2PfkJatzDGv5LRXVw=; b=ORIOjTqosJyEciBYgPKq4akbXJO6NYWqulBcRkSsOT1k4flMPLITHQP49uPS0eL+mX a6/mLWQ1PHYl+uio2C958m0D1q7bEEWgj8PoD4YHmJPW6n1NdYHCevaW64tAOxdzItGm IWcoOXvl7uDEC9oZ9Nh5lg8T6onTK9phrh06l4ix3yl8KBlqQqymqA72XZY2/KMM+R6K prrIhh6c9qFYqCk+8MuVudsSt/5SEDJy+aqY4ka4AN2MQ1G8hf4vwOJFEjYUyUTysoYs SBMKmL2IAFq90ChRkzVUY0Wwuv78U15Gd3OLIBoLbUU1E1DcOpnPnSxbY0eGdXODWKah Y/ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cXv7xTXJ8m9Tx20Z39ZCjZ1qel2PfkJatzDGv5LRXVw=; b=hFx4PerUl3RUBrcylEW9eNzr6S1cwHp9l4CFOnFi/ZmpBsRLqWTOgYWKJGp0ZvdyN3 Y6jgbxMWrpo5iBuIrNwCgRGkQrpvaKi5xaY5q7131k7cr1Etw1No8N4ecerBxnKo/N1h KF8RlAL3J9w8R8FIC6SUIVYNA0AN9HrGx+sfKNHk5vs2X7usc5MwoAICRpypm5H2XvOD DQ69PwhAKKsbEaU234yiqWF06R3AP7d2CI+5BtchFsJU2kUuR3JGyYMhdWeXSL5IEBqG tXLm0iyuFlEhNf99dyvnA8mHgA60YF/LJRgfZTCA+RmKmU9yod8oqDxONOn3Rtg5JqOB f/jg== X-Gm-Message-State: ANoB5pnwstLIAs3FfKHvpiQ3GjNSWE5DfVeeqxxg9vcZ+fv1F1cdGOZR HRZqNK8vtbf0u4YmKSAST4GPTHNgvK49sEub5LObZFyrsBhCnbCX X-Google-Smtp-Source: AA0mqf65wEMD71yvX3vk5CfEgmxZh0sRMGgGGMD5QQ3Hot0boBZXPW6B+8HyY7m27+ZZJRutvwHcwnmmXABDEVqbKNg= X-Received: by 2002:aca:1c19:0:b0:35e:22a7:3aad with SMTP id c25-20020aca1c19000000b0035e22a73aadmr4332486oic.183.1670510416801; Thu, 08 Dec 2022 06:40:16 -0800 (PST) MIME-Version: 1.0 References: <994B8839-2A69-4522-95D7-BF1B19831677@php.net> In-Reply-To: Date: Thu, 8 Dec 2022 15:40:03 +0100 Message-ID: To: Thomas Gutbier Cc: internals@lists.php.net Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] What's new in 8.2: DNF types From: landers.robert@gmail.com (Robert Landers) 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 === null) { > - return null; > - } > > return $entity; > } > } > > Best regards > Thomas Gutbier > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: https://www.php.net/unsub.php > 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 = 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