Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:79740 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 78401 invoked from network); 16 Dec 2014 18:50:13 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 16 Dec 2014 18:50:13 -0000 Authentication-Results: pb1.pair.com header.from=smalyshev@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=smalyshev@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.218.47 as permitted sender) X-PHP-List-Original-Sender: smalyshev@gmail.com X-Host-Fingerprint: 209.85.218.47 mail-oi0-f47.google.com Received: from [209.85.218.47] ([209.85.218.47:54996] helo=mail-oi0-f47.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AC/C0-08594-3EE70945 for ; Tue, 16 Dec 2014 13:50:13 -0500 Received: by mail-oi0-f47.google.com with SMTP id v63so10117627oia.34 for ; Tue, 16 Dec 2014 10:50:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=1+64Omu1ihnJztNGJTfGobPeSP2Or6MuqZOlJ5RPUls=; b=tT18rVcFnYD+d8z9BFrV4P8PD8dNEQhpHaef7MnCxKxHWCpKBVXIEqbHuSaOZIDexa cP6akG6hOhm2PEQi6LB6zKP/vVF7R0XEGdSw/hLyzTrncWrwXEk6kiClQMTdgQ8erQU8 W3E3sEHx8TFcWL8qyV7yKvl2KAFPGHKHHTrt/wY16IXdujfcie4hHtBDDWJDLWQ3Bx9c jzctreJOUOfE0hXPs3NsjMZlMjk9vlGE6PCxGxeFYu4OF8CM0DRr/zX+0aYaHUsbZ0FG El8CVS9mCYoEyBmT9wX9+e8/+OSAqbsewWxi/Nr+7ltaXFc5fQ6F+K9TT51Fe9hL4+x/ o1Rg== X-Received: by 10.202.222.70 with SMTP id v67mr21975176oig.81.1418755808451; Tue, 16 Dec 2014 10:50:08 -0800 (PST) Received: from [192.168.2.145] (108-66-6-48.lightspeed.sntcca.sbcglobal.net. [108.66.6.48]) by mx.google.com with ESMTPSA id rv3sm642134oeb.16.2014.12.16.10.50.07 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Dec 2014 10:50:07 -0800 (PST) Message-ID: <54907EDE.6020500@gmail.com> Date: Tue, 16 Dec 2014 10:50:06 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Rowan Collins , internals@lists.php.net References: <548FEE87.7020602@gmail.com> <549009EE.7040808@fischer.name> <54907683.2070509@gmail.com> <8AB6896C-D5DB-4471-BBD5-60784B2FC1BE@gmail.com> In-Reply-To: <8AB6896C-D5DB-4471-BBD5-60784B2FC1BE@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC][VOTE] Objects as Keys From: smalyshev@gmail.com (Stanislav Malyshev) Hi! > Explicit conversion is trivial, just call whatever method you like. > Sure, you can't write (int)$obj, but $obj->toInt() is just as > expressive. Exactly the same applies to __toString and whole ArrayAccess, yet we still have them. Avoiding boilerplate code helps. Especially if boilterplate code would look like: if(is_object($foo)) { $foo_key = $foo->toInt(); } else { $foo_key = $foo; } $a[$foo] = 1; Doing it each time is annoying. -- Stas Malyshev smalyshev@gmail.com