Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:122365 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 64753 invoked from network); 14 Feb 2024 00:29:20 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 14 Feb 2024 00:29:20 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1707870616; bh=9QlCzKtMcN5ztEuE+m+GsevHmlqrMA1ddYAxSc9Y1Mw=; h=From:Date:Subject:To:From; b=LWtajDk6xanl9tQfE1Ba5OIiJFyePBGRvQ1afZvxyDDsQUNvlqIrn39bMowkbjavL YYWHO4no3AD1D8qoE37DaV+cAzBlmeEBSG7AsohbeEVhFn/Er81AnYjJKJ4Pj6WNdt 1rXCDVo7iFscWwszEuNK9EF5B3QWOyKaRDSkpJlLnUGtfV6VjC9baHJIdEcP6te0Rs lLhnqfWOTkHUokITNhyZB3GR5lDtGMSvPyO4zUxXGOxZC3QmUeLqOtczIy3gIG+Gi9 ZhOORqUE6hj+70hyaYSRgHWLHztF1838dNQizJXLG+LUNuZ1ndEx23LelcolV12e10 5URVPmE59cyyQ== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id B1B42180064 for ; Tue, 13 Feb 2024 16:30:15 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from mail-oo1-f53.google.com (mail-oo1-f53.google.com [209.85.161.53]) (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 ; Tue, 13 Feb 2024 16:30:15 -0800 (PST) Received: by mail-oo1-f53.google.com with SMTP id 006d021491bc7-595aa5b1fe0so3192096eaf.2 for ; Tue, 13 Feb 2024 16:29:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707870558; x=1708475358; darn=lists.php.net; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=9QlCzKtMcN5ztEuE+m+GsevHmlqrMA1ddYAxSc9Y1Mw=; b=gVnKDnDhnlq6LKbgaIPg8MXvKPLaEwP2cDDLc1Wra5OTsLKPAs7mdFOMQecTJlz7me 6IRWhURw6q+5RDj1JxvT1sBn4hUfNwNqPz0JMojMJwhl70dAmt2tUhBpPnlFnNLpLG7s Sb6OznAiOxlOA6ER6nMuJHOKxdyK7v79FdWna4u6RYG3m3OYpEJHn3sQREOy66/IOyZL S92k4XohVWHE02oz42eAjjXkgCTIEtvulpFnDhPUiQlYfsc23W/hz5oMfTOSif4MN06i bgX2aVzXLaSZpCJ2C1Jnc7QiLQM1Ub/HDjS0q0C/njfte6dBDy1AI2uypTg4tXXXkKI2 Slsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707870558; x=1708475358; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=9QlCzKtMcN5ztEuE+m+GsevHmlqrMA1ddYAxSc9Y1Mw=; b=gSiEfpfIwhayTkGwVRMsnkp4+KgN6SmvsKGJOqgmtMX0zrreirNXtxsSkkNk5GJP5g JyeB6vNdvLeHNzj8VMceHpYzeB9L2Rkjyt9quQZvfyqoQijtLet31GGqol2w1QGG7sKS CBfFN2/Waom4jcr9Gyh/JT58+eAnKMeGPXWX2+L+D9hb+P7SoQOIk4c+p84CrwvMrIfA u1POOr918R9giT/w79fmfhkwtrotDrwmHP8azdwoYDXRMfK1wIoevI2F5ZpU2SbIqD6V T0ek5j64BDl69xwvEfjoKyXWGsdqoZKP3SofvVIpCeirtvIqQuYrLUs6LR1ZIOKs+lBT qJCA== X-Gm-Message-State: AOJu0YwjoWAiQWKtpWeuGNBbRGrxycPvROyqZ5q6gQvjdi47G4Lg06Uu LWGltqUVjb/fFxkrAXYb5FqoDtyipfSrmpINq4pfignPyh7BiEkX6d7kWHceZV5O0ZhXGNatbLY nBGD6tcp+khdGr6WiM66bs6kiWZhG2PCAyFULjQ== X-Google-Smtp-Source: AGHT+IFHMuRNl3j8qqXlVM4qcq9UbRvw8qzjEoPFEOG/XAKMRoWBFPbpi4ogno3SfsETu8aI/qV8XPr8gPkd4d4LBx8= X-Received: by 2002:a4a:620b:0:b0:59d:7479:7ee9 with SMTP id x11-20020a4a620b000000b0059d74797ee9mr1325251ooc.5.1707870557690; Tue, 13 Feb 2024 16:29:17 -0800 (PST) MIME-Version: 1.0 Date: Wed, 14 Feb 2024 01:29:05 +0100 Message-ID: To: internals Content-Type: text/plain; charset="UTF-8" Subject: [Discussion] Thoughts on casting to null From: landers.robert@gmail.com (Robert Landers) Hello Internals, Today, I was working with a library (ReVolt) that throws if a callback returns something other than null (why it doesn't ignore the value, I don't know, maybe I'll file an issue). I discovered the topic of this email after trying to be simple: EventLoop::repeat($pingInterval, $client->ping(...)); Where `ping()` will return a bool which triggers an error since it returns something. I thought to myself, cool, I'll just cast the result to null and everything will be fine: EventLoop::repeat($pingInterval, fn() => (null) $client->ping()); However, this isn't allowed and fails with a parse error. I won't be the first to say this, at first glance, casting to null sounds silly, but short arrow functions must always return something, by design. That's when casting to null makes any sense at all (that I can think of): you want to write a succinct, short function but guarantee the result is discarded. Instead, if you really must use a short array function, you have to do something even weirder: EventLoop::repeat($pingInterval, fn() => $client->ping() ? null : null); I assume casting to null was discussed previously (at some point, though I didn't see anything), but what are your thoughts? Is this something that even makes sense? I'll admit, I've never tried casting to null before, but I had assumed it would "just work" and was slightly surprised that it didn't. Robert Landers Software Engineer Utrecht NL