On 2011-12-01, Anthony Ferrara <ircmax...@gmail.com> wrote:
> On Thu, Dec 1, 2011 at 12:34 PM, Ralph Schindler
><ra...@ralphschindler.com> wrote:
<snip>
> > needs to somehow guarantee that all methods of the type $foo will return
> > $this.  (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".)  The 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 = 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 = new SomeValidator())->isValid($value))) {
        // Validation failed, get messages...
        $view->assign('errors' => $validator->getMessages());
        return $view->render('error');
    }
    // validation passed, do something...

Yes, this could be written as follows:

    $validator = 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.

-- 
Matthew Weier O'Phinney
Project Lead            | matt...@zend.com
Zend Framework          | http://framework.zend.com/
PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to