Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:130017 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 309991A00BC for ; Thu, 5 Feb 2026 13:36:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1770298589; bh=C1dao5eOnnHC1Dr+s8Ktm4RUlFjNp2taXaT9EH9R6Xo=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=IbL9khrQnyNMBHvWSCxjYxS/ushJL+Ewe51Nj4Pgnk13F9wAMQchevpSuMAQZa5qh EbWINB+KtiUe4cJu6ny0o/o5GfoKDqpFIuBFL8Rqt1WF6ryCUVCAaEIs9uU0VFb1tW lSEJ7q8qf418pa260xldPtgxtRsmEfzYI6dL/+mW7f0BKmhoykM2TXQN+hlTAlJaaA soKMLugQDqCdlLvBp192+qnSEkPzC1EcN19t+nHNkdb9QPi7pJUdBvjsxNiyKRAUow Y8WNECi0AmIMueT9Vb5ib7vhtpyGuQkx3qFwRRiRaO6fElNlKaYXGsc35+zp0p745w G29OF4JjfvPfA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CA4AE180083 for ; Thu, 5 Feb 2026 13:36:28 +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=ARC_SIGNED,ARC_VALID,BAYES_50, DKIM_SIGNED,DKIM_VALID,DMARC_MISSING,HTML_MESSAGE,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-vs1-f51.google.com (mail-vs1-f51.google.com [209.85.217.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 5 Feb 2026 13:36:18 +0000 (UTC) Received: by mail-vs1-f51.google.com with SMTP id ada2fe7eead31-5fac15a7b88so159019137.3 for ; Thu, 05 Feb 2026 05:36:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770298573; cv=none; d=google.com; s=arc-20240605; b=XG/eSa+eB3CvIhm4+fhvvm7ZckRYChOHrojAzt66uigWulzntYBc5FEhg+wgY7BO8n Ha62ZcZ4opOp90HozEkYq8mR+7uoFf+PYudxowZDZpsCC64ouNHvFow/+57UpVhrI9o/ rAu+GnEDwdJyVgW70t7DgVp0NnRSDD8zUdioQCsv7LRhmfO3wyHsIPU9uLK7eQ2LJgn1 tl0QWR6MiCxsJW1MfE81WKrRVNPhc31VVgdATdVq4jvXYLL9nTS5SODpfyHL9S3pCIza IQEiMYIU0+uSR7DYCMev+HlZrGH/Mmb8eFLgpkPJyyqT2eClQ9BjEPVZzSQlCoIbUQc0 xqTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=C1dao5eOnnHC1Dr+s8Ktm4RUlFjNp2taXaT9EH9R6Xo=; fh=NP+D3q2cN8Xu9kPuz6/vf5zR4p0zh7D+/laYjj5Wz5w=; b=IU2yNdc5OaxVJE2J8AIl0tCJ3Il8LcT69vInal5DtDaHK5JuDkWv/TymlXsRuViV0P KsYTpLroBYqGVNxrqoQFMYR/ik2l9xOJC5Tq/bp7SOOoN7YNoxSgkB4QwVtpwDFyLhCa Rqy5aVaqJy+VF001Nf5CLxdqv37iLsoP/qkVnpigIzb3jqr4cICUKNbuSaNX2tmP4ggT wLgi/Z4gztbPUdHkAaUfxVLvaQNwFxVASpyh5ScLx1+K714pIxMWi+JSW8gFcYGq7c5H 9ysTPHCyAimaI8+qIoDmSsngUbKCGE9k1Q8IvkmbtffDlhlNbxoEPbbuFrNXV5UeRD2c x8uA==; darn=lists.php.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carthage-software.20230601.gappssmtp.com; s=20230601; t=1770298573; x=1770903373; darn=lists.php.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=C1dao5eOnnHC1Dr+s8Ktm4RUlFjNp2taXaT9EH9R6Xo=; b=kXeoildxz53bdr93E+3wo+p4RQyd7NjbMy4Q99CPkXEbjX6kHquMS93U+VtvQL2B7O zfyZhg9Vg2qqqpoK5kTAZmUjUoT9ZK9sDivyf4nmellohSjcKne/cvtOsB3RJDCfVVGN cig5JEyywFMz53XHST5Uz23GA9A/WwquH85WksobLQH8MRjRMXD3jaHFDekfp1gXK+VL SozYYvdz+5BvVvDGtQokfAR9WotCGDcyOMyurSEquYsggjheXHu/9tdB1Lh7Uh4lT1oe otWl25rCTTo/41oMXssgBxzfh7F+386dXWNDSAgKz1rrbExJnoxoplsIgAkDJx5SHunz LtLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770298573; x=1770903373; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=C1dao5eOnnHC1Dr+s8Ktm4RUlFjNp2taXaT9EH9R6Xo=; b=jZHXi8bo4oIuLFSXjKY+onQKY0CR8ylhvnSxO97+SA5Cuu9qomk6Cmcs8AKJolcFIV T9DBkeVTS4kbb/bkdblAmmhzL+ktewb+ddsytPJTC2a+DPJtnGHkfxZHv9ny8Tu3327p lgpdgYhze36BiJl1K1f9qYNTB81HHWJWd9LXAc0j9UGSSophrnwQiohu/jrt/6FtdQeo Zuxi9OK2mDA5DAhHf7Ef47uoO+plH2XJ/mb8RilzDuUo+opQjirPY324JOM81Ou8ua1b HYIHuyzDaHIVxzXJXI6iF+nqcRHfRmtZ7W/EjLqyP0GpkwGdcrS47Pi+Dsbh/8k28fzz Qwqg== X-Gm-Message-State: AOJu0YwRSda1sJT0hMmZA5AQ88Yh7SpGOHt3i/Vb/SEu3/kwWpY8kGPL xCuqCTkyp0NlAGrAaUMm7YtUBVv/zun51Q8wacwfSLimm3DdcY2qjv7TpadIVGbd5WOqV3DCMXT TUw65lRhQa1kANkTHI/eWrQ06yRkz9vXINq30O7IQ3/ieke8wmb4fZvs= X-Gm-Gg: AZuq6aK3CqXH3PJxERveQWFf5R4ygLw7uuiTUK4iSep3IIVvIJC5KIeGCYGNVGtWKq3 hVEN6Ml5+NRXa5pniGTrhbVW1d4qxg5ztdjucJFpVbkp4v1rgeQFwUlOzQPtmGWFvqQlDP0ynCj dAF0vfLn9GQJHuc03GRS+3BmeoeplLDMphAAX2NYODfKWw5IRkxuGN0dp0ZWrexnETIaVg0H0GC 0wUgAI2MfNiDcrN0oerGy3kDbwDpeRvN4MV0nv/YrwNTTDlVGVycdxJS8T/PNeHirKgnzbgYH8i Fd6xTiQ= X-Received: by 2002:a05:6102:370a:b0:5ef:adaf:ae6 with SMTP id ada2fe7eead31-5f939657dc4mr1894532137.41.1770298571070; Thu, 05 Feb 2026 05:36:11 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: In-Reply-To: Date: Thu, 5 Feb 2026 14:36:00 +0100 X-Gm-Features: AZwV_QiqB05dufvjQgOKR2CEnx5pKwr2YYLLAhfijQMEqtnbmhFmQaYlnju31Xc Message-ID: Subject: Re: [PHP-DEV] [RFC] Trailing Boolean Operators To: Len Woodward Cc: internals@lists.php.net Content-Type: multipart/alternative; boundary="00000000000079ad07064a13c15f" From: azjezz@carthage.software (Seifeddine Gmati) --00000000000079ad07064a13c15f Content-Type: text/plain; charset="UTF-8" On Tue, 3 Feb 2026 at 20:07, Len Woodward wrote: > > Hi everyone, > > I think I've got this RFC into the expected state needed to announce it and open discussion. > > Trailing Boolean Operators > > If the link doesn't work, here's the raw url: > https://wiki.php.net/rfc/trailing_boolean_operators > > The TL;DR is that we allow what I'm calling a 'dangling' ('optional' might be the better word) trailing boolean operator. Mirroring trailing commas. It's designed to be a purely additive QoL improvement to help reduce diffs. > > I'm both excited and anxious to see what you all think of it. > > Cheers, > Len Hi Len, Thank you for the proposal, and congratulations on your first RFC! However, I am not in favor of this specific change. Unlike commas, which serve as separators, binary operators functionally demand a right-hand operand. Allowing a trailing operator breaks this fundamental expectation and introduces unnecessary ambiguity. As a maintainer of a handwritten PHP parser (mago ), I can attest that supporting this would be non-trivial. PHP's operator precedence/associativity is already quite a mess (reference ), and introducing trailing boolean operators adds parsing complexity without providing proportional value to the language. Cheers, Seifeddine. --00000000000079ad07064a13c15f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, 3 Feb 2026 at 20:07, Len Woodward <len@artisan.= build> wrote:
>
> Hi everyone,
>
> I think I'= ;ve got this RFC into the expected state needed to announce it and open dis= cussion.
>
> Trailing Boolean Operators
>
> If the = link doesn't work, here's the raw url:
> https://wiki.php.net/rfc/traili= ng_boolean_operators
>
> The TL;DR is that we allow what I&= #39;m calling a 'dangling' ('optional' might be the better = word) trailing boolean operator. Mirroring trailing commas. It's design= ed to be a purely additive QoL improvement to help reduce diffs.
>> I'm both excited and anxious to see what you all think of it.
= >
> Cheers,
> Len

Hi Len,

Thank you for the pr= oposal, and congratulations on your first RFC!

However, I am not in = favor of this specific change. Unlike commas, which serve as separators, bi= nary operators functionally demand a right-hand operand. Allowing a trailin= g operator breaks this fundamental expectation and introduces unnecessary a= mbiguity.

As a maintainer of a handwritten PHP parser (mago), I can attest that suppo= rting this would be non-trivial. PHP's operator precedence/associativit= y is already quite a mess (r= eference), and introducing trailing boolean operators adds parsing comp= lexity without providing proportional value to the language.

Cheers,
Seifeddine.
--00000000000079ad07064a13c15f--