Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:56724 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 40232 invoked from network); 2 Dec 2011 16:55:35 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 2 Dec 2011 16:55:35 -0000 Authentication-Results: pb1.pair.com smtp.mail=dsnytkine@Ultralogistics.com; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=dsnytkine@Ultralogistics.com; sender-id=unknown Received-SPF: error (pb1.pair.com: domain Ultralogistics.com from 64.197.110.172 cause and error) X-PHP-List-Original-Sender: dsnytkine@Ultralogistics.com X-Host-Fingerprint: 64.197.110.172 thrud.alliantinternet.com Received: from [64.197.110.172] ([64.197.110.172:52983] helo=thrud.alliantinternet.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id BC/53-16911-50309DE4 for ; Fri, 02 Dec 2011 11:55:34 -0500 Received: by thrud.alliantinternet.com (Postfix, from userid 1001) id 20FE51742FC; Fri, 2 Dec 2011 11:55:31 -0500 (EST) To: "'Matthew Weier O'Phinney'" , References: <4ED6713D.2050009@ralphschindler.com> <4ED67DCB.5090102@ralphschindler.com> <4ED68940.3050502@ralphschindler.com> <90D867E2-E6FB-481D-B57C-911E5FE6A418@gmail.com> <4ED7BAC2.20805@ralphschindler.com> <9B.03.16911.EB109DE4@alliantinternet.com> In-Reply-To: <9B.03.16911.EB109DE4@alliantinternet.com> Date: Fri, 2 Dec 2011 11:55:18 -0500 Message-ID: <011701ccb113$2bdcfe20$8396fa60$@alliantinternet.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Thread-Index: AcyxEo2Yhf493BQIT4+gg6IBkqO5xwAAFaow Content-Language: en-us Subject: RE: [PHP-DEV] 5.4's New De-referencing plus assignment From: dsnytkine@Ultralogistics.com ("Dmitri Snytkine") IT would probably be even more convenient to just say if( (new Validator())->isValid($value) ){ } No reason to just temporaraly assign $validator. Dmitri Snytkine Web Developer Ultra Logistics, Inc. Phone: (888) 220-4640 x 2097 Fax: (888) 795-6642 E-Mail: dsnytkine@ultralogistics.com Web: www.ultralogistics.com "A Top 100 Logistics I.T. Provider in 2011" -----Original Message----- From: Matthew Weier O'Phinney [mailto:weierophinney@php.net]=20 Sent: Friday, December 02, 2011 11:50 AM To: internals@lists.php.net Subject: Re: [PHP-DEV] 5.4's New De-referencing plus assignment On 2011-12-01, Anthony Ferrara wrote: > On Thu, Dec 1, 2011 at 12:34 PM, Ralph Schindler > wrote: > > needs to somehow guarantee that all methods of the type $foo will = return > > $this. =C2=A0(BTW, this is not an argument for my feature as much as = its an > > argument as much as its one for "if we're going to do something, why = not do > > it correctly in the first place".) =C2=A0The correct path here, IMO, = would be to > > simply carry the expression result (since we're using '(' expr ')' = out and > > allow dereferencing on whatever comes out of it. > > > > I would argue though that your syntax is completely possible today: > > $foo =3D new Foo; > $foo->bar(); > > What's the reason to put that in a single line? Aside from terseness, > is there any other benefit? With the new dereference, one benefit is > that no variable is populated when none is needed. But in your case, > you need both variables... Here's another example. We have validator classes. Typically, you call isValid() to see if a value validates. If it does, you have no more use for the validator. If it _doesn't_, however, you'll want to get the error messages. I could see the following as being a nice, succinct way to use validators: if (!(($validator =3D new SomeValidator())->isValid($value))) { // Validation failed, get messages... $view->assign('errors' =3D> $validator->getMessages()); return $view->render('error'); } // validation passed, do something... Yes, this could be written as follows: $validator =3D new SomeValidator(); if (!$validator->isValid($value)) { // ... } // ... However, I can see some folks not really wanting that variable declaration if they won't be using it outside the conditional. --=20 Matthew Weier O'Phinney Project Lead | matthew@zend.com Zend Framework | http://framework.zend.com/ PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc --=20 PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php