Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:118944 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 98082 invoked from network); 2 Nov 2022 21:09:04 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 2 Nov 2022 21:09:04 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id B6AFA1804B0 for ; Wed, 2 Nov 2022 14:09:03 -0700 (PDT) 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,HTML_MESSAGE, 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-ua1-f44.google.com (mail-ua1-f44.google.com [209.85.222.44]) (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 ; Wed, 2 Nov 2022 14:09:03 -0700 (PDT) Received: by mail-ua1-f44.google.com with SMTP id c12so53229uat.13 for ; Wed, 02 Nov 2022 14:09:03 -0700 (PDT) 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=yhnUrP8bgjA7nCtIfp2e5Tru+QvCgmq6ortAIEy+lOI=; b=ofYdccltGL6VmkQeuAM0yu+p14t5QeTij+1f72bzNWWE/R/OoOX+vLe4p4U1Q4Oxwd MmKSQRx0nlfu/k5ZJFvXCJbiV2auze8+0iJBXqO4CmCtwBt3hPXpw7zdjpU379CHqg0o 6DFaAT9gm34912PKgQDaA9q1lOCBnUqxXWIX5ha5FxF0BEtKuaBZqynnLyAfUe+HzdTc mNMaD/m8i6wOFh1l3+476AOwqtby0aBYoG3fIdJ+LnsSm+RdhxTTsRoPnsbxRR7c66QH xMoDnK/q7LRaS8ab6S99Nfz0ehVFgVdgiMJbYTKHT0Y/Yk82LuTww/lnSy8ehdqIC+Nx IKtg== 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=yhnUrP8bgjA7nCtIfp2e5Tru+QvCgmq6ortAIEy+lOI=; b=RpBZqyVYfOd5Wr9c/Q+XGeFGdT7vEmt4aNV+xsQvFSP3ErygqP2ZvY1VUL5b6KAkst Jm4wmt0daOUb327TpvpyBCT0cz+MhXDEf6dUMCOgpl+n2Ybe/bV6+Fz1muE4SPOi7r7o aV9bEfJD7NKndYwjZGIysWHld16b6/tj0o1EikjPnVABhxRDsmSatl77K/WsoAL3ewpX o4MQuF1wG+n+2sF/LCmsqdep8Gdc9BeHWcdfXiXk5Sa+LyxBQq6XN7n/nPFPhfEW+gWJ iyhl3qArlyGwVZU9RB/PYRo2LbaYvjI+46oJu2M3ktBYrKID9UV1jbtAdC0ZGQCEnemo anSA== X-Gm-Message-State: ACrzQf3D4+M7oekXvZUPdpmlSNo6BMyHH7ivxEEOCCYFkLQTIgBg8A8C omViovZMqyUG4KHHLjBcG6gfoRTUCiVQXFltFabtdT6e X-Google-Smtp-Source: AMsMyM6H8j5Rwr/uMRTmPoEE06eCcKRkk8dMUcs+wHEwMV/b8GsZCUWv3huaSJxebZB/lQfgfcHDmeJVg15Zj+RPNi8= X-Received: by 2002:ab0:71c4:0:b0:411:2b9d:71 with SMTP id n4-20020ab071c4000000b004112b9d0071mr11263757uao.21.1667423342224; Wed, 02 Nov 2022 14:09:02 -0700 (PDT) MIME-Version: 1.0 References: <21C5073D-3F39-49DA-8686-E027AE780793@joshbruce.dev> <1bc7759a-63b8-4b96-bb69-97b50f851307@www.fastmail.com> <94DC0839-E43B-4F3A-9105-8F3CB9D7BBC1@joshbruce.dev> In-Reply-To: Date: Wed, 2 Nov 2022 14:08:50 -0700 Message-ID: To: =?UTF-8?Q?Micha=C5=82_Marcin_Brzuchalski?= Cc: Josh Bruce , php internals Content-Type: multipart/alternative; boundary="00000000000000ebb805ec834015" Subject: Re: [PHP-DEV] [RFC][Discussion] Objects can be declared falsifiable From: jordan.ledoux@gmail.com (Jordan LeDoux) --00000000000000ebb805ec834015 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Nov 2, 2022 at 1:12 AM Micha=C5=82 Marcin Brzuchalski < michal.brzuchalski@gmail.com> wrote: > Hi Josh, > > Have you tried not initializing invalid objects? This could help you. > Also that sounds more logical to me as I don't see any reasons to > initialize invalid objects if it's a matter of simple validation instead. > > P.S. I don't see it feasible to have objects that evaluate false in > logical expressions. > > Cheers, > Micha=C5=82 Marcin Brzuchalski > The one situation in which I can think of where an object might legitimately have a falsey bool casting is if it represents a single value (that may have multiple properties associated with it, like units of measurement), and `if ($obj)` is really asking something like `if ($obj->castSingleValuePropertyToBool())`. For most of *these* situations, either `if ($obj->isEqual(0))` is equivalent, or `if ($obj =3D=3D 0)` is equivalent if operator overloading w= as accepted. Jordan --00000000000000ebb805ec834015--