Jason Garber wrote:

The original reason that I asked for this functionality was to make it significantly easier to work with E_ALL error reporting. When I say easier, I mean by reducing duplicate code.

//This
$foo = (integer) ifsetor($_POST['foo'], 0);

//Instead of
$foo = (integer) (isset($_POST['foo']) ? $_POST['foo'] : 0);

It was also to be useful for accessing array elements that may or may not be there.

I strongly agree with Ramsus that ?: is far to close to the ternary operator and would prove to be *highly* confusing to beginners.

I don't think it would be *highly* confusing to someone who has already used a ternary statement. If they haven't then even a ternary statement would be confusing. In either case I think good documentation would be important.


I am still on the fence about the asymmetry in that one tests isset() while the other doesn't


Marcus made an excellent point about the 2 versions of the function:
   1) $a = ifsetor($b)
   2) $a = ifsetor($b, NULL)


See my response to Marcus' post

By the way, I'm not stuck on ifsetor() as a name, but
   a) the name should be short and clear
   b) the construct must be called with function like syntax


Marc,
I must ask, why are you so opposed to the function() syntax? There has been quite a few reasons stated against the operator syntax, but I haven't heard any reason why we should not go with the function() syntax?



I am interested in the new construct for the exact same reason, E_ALL development. I am intersted in the ?: operator because it looks alot simpler, especially if you want to chain them together:


$user = $_SESSION['user] ?: $_POST['user'] ?: $local_user ?: NULL;

I am not even sure if marcus' patch allowed you to nest multiple ifsetor() calls...either way, my main goal is simplicity. I am not just trying to be contentious, I am actually interested in a good solution.


Marc

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



Reply via email to