On Feb 22, 2012 7:05 PM, "Larry Garfield" <la...@garfieldtech.com> wrote:
>
> On 2/21/12 5:45 PM, Tjerk Meesters wrote:
>>
>> On 22 Feb, 2012, at 2:03 AM, Ralf Lang<l...@b1-systems.de>  wrote:
>>
>>>>> I see no reason why it would be not desirable to have PHP raise the
>>>>> exception rather than putting more or less repeating code snippets all
>>>>> around the place. That is why I am asking.
>>>>
>>>>
>>>> You must be returning false/null somewhere. It's the same effor to
>>>> instead throw an exception or to return a Ghost family member.
>>>
>>>
>>> The $baby->mother() method cannot know if the using code just wants to
collect the $mother object or execute code on it. It can also not know if
having no $mother is a problem or just a fact to deal with. Unconditionally
raising an exception is a bit overkill here, at least if we would get an
exception for trying to access (null)->mother();
>>>
>>> Currently the user code must check each link of the chain if it is
available, although it is only interested if it can get the final result or
not.
>>>
>>> I'll follow the suggestion and write an RFC.
>>>
>>
>> You'll have my vote! :) bloating code with chainable checks is just
crazy, something that the engine can do much more efficiently and
unambiguously.
>
>
> I would also support this.  There's a myriad reasons why something may
return NULL or FALSE when you expect it to return an object, some of them
even legitimate.  Any function/method whose documentation line is "returns
the foo object, or NULL if someone screwed up and there isn't one" is
perfectly reasonable in many cases, IMO, but makes all chains a potential
fatal.  An exception would make a lot more sense, and allow us to
centralize handling of such "exceptional" cases rather than throwing
if-checks everywhere.  (Which is exactly what exceptions are for.)
>
> --Larry Garfield
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

Seems to me this change would encourage bad habits (breaking the law of
Demeter) which would personally put me against it.

Regards
Peter

Reply via email to