More interesting behaviors to dig are there:

variable = <value1> ?? <value2>;

variable = <value0> ?  <value4> : <value1> ?? <value2>;

or a la javascript

variable = <value1> || <value2>;

Best,

On Sat, Nov 21, 2009 at 10:21 AM, Rasmus Lerdorf <ras...@lerdorf.com> wrote:
> Alban wrote:
>> Le Sat, 21 Nov 2009 09:48:10 +0100, Lukas Kahwe Smith a écrit :
>>
>>> On 21.11.2009, at 06:12, Alban wrote:
>>>
>>>> This is not a big problem but if a solution exists, this would be so
>>>> cool ! Especialy when we have to check existance of twenty or more key
>>>> in array. Code would be be lighter and clear. Since i use PHP, I always
>>>> have in my 'common function file' a function like that :
>>>>
>>>> function getIssetVar($var, $default) { return ((isset($var)) ? $var :
>>>> $default); }
>>>>
>>>> So is it possible to make a little improvement on this operator or
>>>> introduce a new operator or a core function which do that ? What's your
>>>> feeling about it ?
>>>
>>> this feature request has already been discussed and declined:
>>> http://wiki.php.net/rfc/ifsetor
>>>
>>> please review this rfc before continuing this thread.
>>>
>>> regards,
>>> Lukas Kahwe Smith
>>> m...@pooteeweet.org
>>
>> Thanks for the link to the RFC :)
>>
>> Excuse me, but I'll be little hard in this post. This for insult the
>> community but I want the community really think about the decision it
>> made and the reason why.
>>
>> I also read why it have been refused here :
>> http://www.php.net/~derick/meeting-notes.html#ifsetor-as-replacement-for-
>> foo-isset-foo-foo-something-else
>>
>> Is it serious ?
>>
>> «
>> The name for this new operator is heavily disputed and we could not agree
>> on a decent name for it.
>> »
>>
>> Tomorrow I will not send food to the association for children who are
>> hungry because I can not choose between offering Thai or basmati rice.
>>
>> Stop sarcasm, seriously, this is not an honorable response from people
>> making decisions. Take your responsibility and make a vote or impose a
>> name, just do it.
>>
>> «
>>   Instead of implementing ifsetor() we remove the
>>   requirement for the "middle" parameter to the ?: operator.
>> »
>>
>> That's not people wants and that's not do their need.
>> So that not a correct answer of the php developper demand.
>>
>> «
>>   In combination with the new input_filter extension
>>   you then reach the original goal of setting a default
>>   value to a non-set input variable with:
>>
>>   $blahblah = input_filter_get(GET, 'foo', FL_INT) ?: 42;
>> »
>>
>> I don't see how do that with the actual filter extension. Even if it is
>> possible, this is not a pretty short and easier solution than :
>>
>> $var = (isset($var)) ? $var : 'default';
>
> The ternary isn't meant to solve the isset thing you are talking about.
>  It is simply a shortcut to normal ternary operations.  The most common
> case where you don't know if a variable is set is on the initial input
> via $_GET or $_POST and we definitely don't want people doing:
>
>  $var = $_GET['foo'] ?: 42;
>
> It would be an XSS disaster.  Hence the suggestion to use input_filter
> there, or a similar user-supplied filtering function in which case the
> ternary, as it is currently implemented, is perfectly suitable.
>
> -Rasmus
>
>
> --
> 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