>    if (!(($validator = new SomeValidator())->isValid($value))) {

If you wanted to get into the whole "readable code" thoughts, that's a
fubar mess.

However, I can see your point and your usecase.  Then again, if we're
talking about OO design, that's bad in general since it creates a
tight coupling to the validator class and is not polymorphic.

I guess my thought is that I would be fine with it as long as it can
accept reasonably arbitrary expressions...

On Fri, Dec 2, 2011 at 11:50 AM, Matthew Weier O'Phinney
<weierophin...@php.net> wrote:
> 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
>

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

Reply via email to