Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120161 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 8902 invoked from network); 29 Apr 2023 10:47:31 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 29 Apr 2023 10:47:31 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 9C54A180506 for ; Sat, 29 Apr 2023 03:47:30 -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-yw1-f177.google.com (mail-yw1-f177.google.com [209.85.128.177]) (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 ; Sat, 29 Apr 2023 03:47:30 -0700 (PDT) Received: by mail-yw1-f177.google.com with SMTP id 00721157ae682-54f8af6dfa9so14114397b3.2 for ; Sat, 29 Apr 2023 03:47:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682765249; x=1685357249; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=djIZjmK/IpuFg87KPT0P7z1Fovv35bcBzkGV9vUarrs=; b=cDTXZiXfCN4QZpRIr5bcqC03bG2U+Cnv5zVdEpJr+W0Ht1rp5nbVKcnaHRbKgcn/nv FtKRmbTqmUFoW49NxVuklN+fctPEgKzA4F+nWa4mji8flkacGUk5QU3mS0vDEj4GEJJr ZQcjF1HvrgUFzCQ+1sgvrrIGtODWvgMUtYrSYTK++zhyCI3vV0JwR7J8UbOnIiQlPZag olRDCZSzJ11NgrSSq+/l+vgjxxUrpqX8L9bb+6rPUnSFPWqhiWcq7dYHGAUSz9UvNa0H qYU/zTR3L+13jH9AN/CY8QX6yNWzCYjF4Ud2vrPx0S5kb8pnn4mjqJUqKIFdjp/1R+H6 a9fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682765249; x=1685357249; 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=djIZjmK/IpuFg87KPT0P7z1Fovv35bcBzkGV9vUarrs=; b=gbPLUcR+RSij0NUR1xc6T0f42VR4UpgLNx4cGjf/KgOxBprtEcwFHTGeAvMN027h84 BlA4HePCbE2tziLvUoUP1ajz5NI7of/jd6VJ7tXyk1b06DQ4t9krYpT/6afCX722fTh8 Tq7yx58y0ITLrcWaPdtlPK0ODVy2X52FHNtsEZ1Fj9qYprfUAprypzDm4flAFqaPSS1j PJCHCPQIDWP+2sEOZ7HWTUncXxBJA0Is2nTo0EgN57GAtOIUpd0LSfrhLEE3kuWHAOQp p6cReSQTNYndY2arQMqiAvGtQYAyovcty1wND7P8NVAa+IcmgR+jQljKwPXXJ8g5RbWk yspg== X-Gm-Message-State: AC+VfDyjA4l4qxKaqnDPgmIBibTrcdjVkRJ6szEppdsNVYmnoZLS6wQr RjBgSP8lxdbNbIDLnxahEnpvUpNktX5J2qb2NY2quajZhIM= X-Google-Smtp-Source: ACHHUZ63zfVjeAdQIbIkeos+CLTHr3X2h7XPNwwQoNui2McXKn7fz+6Q3HxDXlYEEsxcP06IdKdaU8lW4PO7aRnRxfI= X-Received: by 2002:a81:87c4:0:b0:556:e3eb:de38 with SMTP id x187-20020a8187c4000000b00556e3ebde38mr6323756ywf.0.1682765249407; Sat, 29 Apr 2023 03:47:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: Date: Sat, 29 Apr 2023 12:47:03 +0200 Message-ID: To: Garet Claborn Cc: =?UTF-8?Q?Tim_D=C3=BCsterhus?= , internals@lists.php.net Content-Type: multipart/alternative; boundary="000000000000ee70d205fa7750df" Subject: Re: [PHP-DEV] Request for RFC Karma - Enum value semantics proposal From: kjarli@gmail.com (Lynn) --000000000000ee70d205fa7750df Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Apr 28, 2023 at 11:48=E2=80=AFPM Garet Claborn = wrote: > You are correct, thank you. > > The RFC draft has been posted to > https://wiki.php.net/rfc/treat_enum_instances_as_values > > -Garet > > I think this example should be "mixed" instead of "$mixed"? `public function offsetGet($mixed $which){` Maybe a bit of a side-track, what about an interface with a method that lets an object specify what it would turn into if it were used as an array key? In the case of enums that would mean they'd implement this interface and just return the value. I hadn't seen this idea come by yet and I don't know if it's a good idea, just something I was thinking of while trying to group data objects based on a value. In theory this could also be done with Stringable instead. https://3v4l.org/Vi8kY#v8.2.5 ```php name; } } $objects =3D []; $data =3D [[1, 'Jane'], [2, 'John'], [3, 'Jake'], [4, 'Jane']]; foreach($data as [$id, $name]) { $object =3D new MyObject($id, $name); $objects[$object->toArrayKey()][] =3D $object; // would turn into $objects[$object][] =3D $object; } var_dump($objects); ``` --000000000000ee70d205fa7750df--