Hi Marc,

To be honest, I don't care at this point. As long as we have something implemented in 5.1 for allowing PHP users to simplify working in E_ALL error mode.

This thing:
a) it has to base it's decision on the same logic isset() uses
b) it should not evaluate the second part unless it is needed
c) it should not be confusing

This reminds me of the instanceof keyword. What about using something like that?

$foo = $bar setor $baz;

If that could be implemented, it may be a way to consider.  It would
a) be easy to recognize
b) be easy to chain them together
c) not be confusing
d) have a short, concise, CLEAR name

Comments?

Sincerely,
Jason Garber


At 7/8/2004 07:48 PM -0400, you wrote:


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.

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



Reply via email to