Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:127786 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id 9A9AC1A00BC for ; Sun, 29 Jun 2025 23:39:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1751240247; bh=lWLV3bArMA2/LoQEzjTPUytH7MqN+0hVO5/PaCVwaq8=; h=Date:Subject:To:References:From:In-Reply-To:From; b=bjROMbPEEAcLAtpcOpdEUtZ0PRz9lQN63rwqXfpJfKn/3YHLnYAskxE4Sa82eoCoR lp1u4gF8iGzhfBZ8q4m8uZ/dPoimuD238cB1yi+yStThQc3woKoPkZx6jxAzBDvIe5 zhs9ep5aW/2lr27flHV44Ie4Wky1ApP5ZR/O++RxxwdXK67Ze7EaPeIZTWsRC/pOhd CmwckhMnr3t2Om82pu0Pnzpj8S+VMc6vY7HG7+Clo/BCNJCgLgFl4NLKHrD6TIajG0 IcZ24GT9l/3EIaPDP0smU4MRO5zfhVXOC3aEZh/79+TZNaP14Zg8euhMZZIYy7fr5N a1+SnIzQIZ6fA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id D4FBA18003F for ; Sun, 29 Jun 2025 23:37:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,DMARC_MISSING, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: Error (Cannot connect to unix socket '/var/run/clamav/clamd.ctl': connect: Connection refused) X-Envelope-From: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.24]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sun, 29 Jun 2025 23:37:26 +0000 (UTC) Received: from [192.168.178.22] ([195.52.133.49]) by mrelayeu.kundenserver.de (mreue106 [213.165.67.113]) with ESMTPSA (Nemesis) id 1N3bGP-1uevTx1ABP-00vVGE for ; Mon, 30 Jun 2025 01:39:18 +0200 Message-ID: <9f135472-9b34-47c4-b549-e5c7a17a775f@nunninger.info> Date: Mon, 30 Jun 2025 01:39:17 +0200 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: =?UTF-8?Q?Re=3A_=5BPHP-DEV=5D_Request_for_RFC_Karma_=E2=80=93_khale?= =?UTF-8?Q?dalamxyz?= To: internals@lists.php.net References: Content-Language: de-DE-frami In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K1:KlfgWrDkH9/2EzxX69+xl6zY4X0z4IFQ9LcHd07Olluu/9zQSXS uwYa5y/9JBZrwIyiimV9+vvElSSCEFMZOv1gsOCs/ApUnp5Xzar6eEFN7abgjPCQEM2epWi P5YTQwnRF97WtqZnFlTBbv3Dr14dsSv8oWx17UwR/eviJQc0QDc4kYOjkMUef7UW0kwMbmw MQ6y0heTtGQprlptZtHXw== UI-OutboundReport: notjunk:1;M01:P0:0AGx5hQDmzE=;gGlyS/N5qfJFXJ/f3L6Kyc+xEBa oNUILxKslNHO/ycqZ7McgJcnyQ5A7OzmEJ7Ucw/X3HUt+qx8rgQ3WXhpgoKqLEQIgPC+AqZS/ 8/0xIcgpW9JshF8ckEYNENfmHDKo2TGkT1pJaAtadl2PICwVxkBjWMB3iK0tDM7BO8V2SovkE 5PBLvxs16MwxKngSd5zrFGiQDvOOq+C+zFa6owq1bUf8/j4GAv1TjhWkJiZZ5ODE7hn2i1evY 0ubTyG2muZl7ckgxoBvh7MCtXGrB+5RuaQQKVcYlvmc9FH1yw6RHd6WAOimJP3BlTCL1dECWG 1j8MMKb15bqTge6hcPzQQGGvlb7JtYJP6L8fNHKnAs9Ts7PB3KalVY5pH3eTtMjRXgZq3OHtB W/n1ar+rp3oi9ERXHmo+Y18fouJV4KDDOin6ANVrW5lCthOetCdWyi35dVYJq7USl/Lgg3uAY 1VmYxrTKF1Aim1IQT/z+xZ7LetnTrUd0cQlvgk8oqvIvb1ShhS2pD/g7kxTL7VIzNm+a8UGZX Fe31MizHwe6wTdqrbMEs67ePOgjrWV6H1/d2WG2dSonQVTeJkFhqrZ8IXh4MJAoz1OVqtmiKw ADFPv0KnMLUSRDOPM683Y0Xu+cFotIje4Bwwus1toxL49Ox8T5L0YBZr7xS8PdWeFoa9sETlI K4gDFt+qklD7A8b4Je1MfN664y2kEdlnZGtw5mwzD2cmuhmHBvk3ixfjkl97p2V0FMLhK3baD MZq8jHufF4NztqJcoRdYXL9N8UT2SLJ/fXMlyUiimJmke6NVPlo09YVGBrUTVMAsYvJVuHn3y 7A6ZH3oEG3gK5pENm4nVP9Jgj4cNWU87XN0H85PtVRcwQK4edmdHvwz/4lnx8p48yM+BRMfZ1 ImMY5HtTjmQI5NLtlSJVKZ4qFNNCG5RNhYZ3XjQxlzqpyY91Ihi6famUciA+VI9IZ48gFO+yl TB2PI53T31xCSkfk7KCPpPBBK+9sWaQL7KVx6Qnk0u+Nnv82my8Bt7kK0/pkphQxBImVykq/l kl2ozFL3t7O4AcRcQqcqAq/5+CEqt2UOQX2LAOUTmxxcGkirJPEHxgeotaq3JVjpTCUhSM3Vw 8oYEOO8L5FsAW8iSEuKC3k0W1EhWer0xaBBp85OoBc14Yd5q2SvtfO3f7OYDxeNwJXPtm4H8z l99FVoPIsZepcB/r3GLjbyxskS6x9l0WPKSe3AkKUDkKIi5nfAWYwpZDt0wDDDNs7pec0N3w4 dNT8bR85yGGNO8kXVBTHAplEt6+sSH+vwaOANyhCOhWt2K6iY/m6KoHrFzilm1DydjwuMwWbl APK7B7I34jMOIXfocfv0N/Q+OmIKcNfd4K+CXVk02HhHaMK4MNx0QUC94HGHrXwp0lGAnatKu KEjnZDTKRU4jZYtFh3VgGU1nnav/TmvaTGrPRLx6xZgxLjyUEpOMx18yNdFJ8sL24fA8Mo9SA zJE42gQYjRMdpgZfYPUGJlLuWurKMn3gbAiWb0OXtPqfJiXzXhtHsD0u6yoA23H9+8saN0hse L9ncMeCzis/FBAWGoAd6+DMKEsry8UDM/tGMUsjp38gx5+0Bpq/gPGN91S9atpx2t75J3Hp+H rvLBp+a5JtYHXs+kVLD78+IE5AQEBlT From: thomas@nunninger.info (Thomas Nunninger) Hi, > I’d like to request *RFC karma* to create a new proposal titled > "*Fail-Fast Assertion Operator (|=>!|)"*. > > *About the Proposal:* > The idea is to introduce a new *fail_fast_assertion_operator* to PHP > that provides a concise and readable way to assert that an expression is > valid and immediately fail otherwise. > > *Example 1:* > $name = null; > $name =>! die("Missing name") > This is equivalent to: > if (!$name) { > die("Missing name"); > } > > *Example 2:* > $username =>! throw new Exception("Missing username"); > $password =>! throw new Exception("Missing password"); > is_valid($username, $password) =>! exit("Invalid credentials"); > This is equivalent to: > if (!$username) { > throw new Exception("Missing username"); > } > > if (!$password) { > throw new Exception("Missing password"); > } > > if (!is_valid($username, $password)) { > exit("Invalid credentials"); > } > > The goal is to improve readability and reduce boilerplate in fail-fast > validation scenarios. This is particularly useful in input validation, > functional pipelines, and early guard clauses. > > I’d like to open the discussion and collaborate with the community to > refine and assess its value and implementation feasibility. > > Please let me know if anything else is required from my side. That seems to work today (https://3v4l.org/14aPa): try { $name ?? throw new Exception("variable is null or not defined"); } catch (Exception $e) { echo $e->getMessage() . "\n"; } try { $name = ''; $name ?: throw new Exception("variable is falsy"); } catch (Exception $e) { echo $e->getMessage() . "\n"; } Regards, Thomas