Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:109346 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 58690 invoked from network); 26 Mar 2020 19:01:05 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 26 Mar 2020 19:01:05 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 531D11804F4 for ; Thu, 26 Mar 2020 10:26:02 -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.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8560 212.227.0.0/16 X-Spam-Virus: No X-Envelope-From: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 26 Mar 2020 10:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1585243557; bh=a5+Sz3X7YbxS3M99fCP7TnRxK0m29Qa5jvHDRmz+PTg=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=LkTvA2IN0rNuKGtefmWIfVfd6D7j6kazjVvdgdf4C+EtZ5OaMbGPcutvjB/0yrbm3 TBvHimOpt1GganKvxyjQNEff22jHhkBg5uIq5VfGf/AKgBJqsJM5M3nZDWwzufDylc WuIzngEJyo5gYmvYi+sUFfu5R5HcWF5AQmUTksW8= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.2.130] ([84.179.237.201]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MgesQ-1jitw03xNs-00hAao; Thu, 26 Mar 2020 18:25:57 +0100 To: Guilliam Xavier , jan.h.boehmer@gmx.de Cc: Jakob Givoni , PHP internals References: <003701d6013c$9afe9750$d0fbc5f0$@gmx.de> <379095fd-ba11-4d84-6cab-89905eeab32a@gmx.de> <004501d6038c$c7870df0$569529d0$@gmx.de> Message-ID: <9322303a-1f68-d5df-8e93-a06b3839ea39@gmx.de> Date: Thu, 26 Mar 2020 18:25:56 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: de-DE Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:1J49OqgXqYQ/nKFZmeHoNTgXLDHGUP4UH9FqerPhssChsRbjPVq jl3alwW8hdvmfIuwm8vuas7z2SsQatxAQqn6F6R3WBhUa50YHEjEBClA98UUIRqWpfjE7B8 o9duf2Y6BQ1vreKk1JkzjH4DAK+Qu0ZFUw+3mm/G7jcBR2bRlIq6JvuC7vHNL8WxkAHp11D nrnqX2KhTgb3Z0PkCw1oA== X-UI-Out-Filterresults: notjunk:1;V03:K0:Hhb15z5wirc=:9+V+tOj8vj5hplcmFyW/wE 2jQ6rE1s84f1mxfUq23HrkOV6xMWQs0+ZZD20y/oUNeL1eWnCPRYrFLPz7+EK4zN63wOGj2T5 dca6FaVOIHvtcnyyHzBzO31gTXNj/T+ij12KgR3b8JZojAOC8o9HNoYQ5qNKCzipdvlWZyv8I GyIApa/sXXUfhvq777wAG35tL7aiBKpgiXDPSe7lglWpJYISymCJyLLtkVxYRdzVOEIQQ/81A 5XLdYXrqjZlKVaRD+AdEASTq1fqyM5AqxNwPzmS8KO5bA5sPWRe7So47s2FC3cZMYuU7bP5y9 lt7VU2gpilmheLtd7d81jMXa2kB86ozll/nAtMmk3/DZE5h4m4/hh7QvLVuU9vrAwByZST/x5 YR9ZjCxaw+tYgZ153Nq+pry7w4uqJFlHbKN5H/wQswesNi5vroLsMeI87qYCnfiMLpq1S+2Kx p+VK9JR4EBtzm3KYVjEK5afZlIPMAsqwVaUvpOjx3MZOnbNiYY/pW07P6EX3tE0POAOuRlxqh dUxAsKCCqB/psoygeOMVRvqFu0txMxphRuk30TBNHRPCt3dmreg0FVk97jESgJ76MCyP5vQwo nudYym6CsExXtJ2E3FOVlZc89yiqluMIkKN7B3/13cKhD8auM2hjEHgx7rnkDjhcfCAYC9KWC h5ciDV/kj320faf97fDDudD633GSx+Cab1wLIga5DyShIU9VSzVbu6apQyOrUgKPoofIs883G L0dFGUl52r2SPG+im0+UdN72z8CbPivcym5HqVPqHlC/awd6/nYU5fi2297j/8JCCBFlAPN0Z 5aOrBswHlS9qUJN1cV1POeXkCn/B8EEMlqWtdIFjmNnWwnyvFLNkO1YaoUkq6zWHQWY344kdj AfPt9qEzyqziiHmaOayOLFCTGMgXQrMQ+nAvNxWVMDARGBzwtTethBpSv7urElmnsQhtm19Ut iUxnwkmWh45HlkWPfZNZuNgxRhIXilT7ZmGQeDVOmCfbS3sQYKTVVXrN+qEtadcprJj2RzHq6 g+nEo3DLNr7QC0GtasH+v48gnSpG8fHilccLK7ozzQ38CkYWQ5oNi9/0rRNbh10Yg6p+SgLMk AnEKYHVU7V5IM+2YXcZoPtWd4jyrVoAtkeM7uaj8Nsgur5TsjuNCP2jL90b3HVVnUdOxmS5cD 1YauWJPPAbpaVmIAmGXw2DJXfJZ2PJrqLYtORVTzz+O6sqxRscQBArygdA4zH3NsFw+CLvwVC ODB7tbkgrfb2MEMFA Subject: Re: [PHP-DEV] Re: [VOTE] Userspace operator overloading From: cmbecker69@gmx.de ("Christoph M. Becker") On 26.03.2020 at 18:18, Guilliam Xavier wrote: > On Thu, Mar 26, 2020 at 5:37 PM wrote: >> >> The overloaded concat operator has higher priority than the __toString(= ) method. >> So if Class A overloades the concat operator, then calling $a . $b mean= s ClassA::__concat($a, $b); (Note that both operands are passed in their = original form) >> If you want to concat the string representations, you will have to expl= icitly convert the objects to strings: >> $ret =3D (string) $a . (string) $b; > > This first part seems legit to me. > >> If the concat operator is not overloaded, the behavior is like now, and= the objects are converted implicitly to strings (so $a . $b actually mean= s (string) $a . (string) $b). >> Furthermore an notice is triggered, hinting the user that he could over= load the concat operator. (Maybe here a different message than for the oth= er operators would be useful). > > I fear that "hint" notice could break Symfony apps... Couldn't you > just not trigger it in this case? Either that (it's what I would prefer), or clearly document that BC break (even if it's just about a notice). Thanks, Christoph