2012/7/24 Galen Wright-Watson <ww.ga...@gmail.com>: >> Don't see much difference between >> >> $a = $b ?: $c; >> >> and (for example I used "i" for "if") >> >> $a = _i($b, $c); > > > When $b is defined, there isn't much appreciable difference. However, this > behavior already exists, so there isn't much to debate. In the cases under > discussion, a userland function can't suppress undefined variable & index > notices, so it isn't a viable substitution.
Hm, you're right. I normaly don't do such ugly things. :) Hum. This behaviour is needed in very special contexts. In my eyes only when printing out/filling up the templates etc. Under normal circumstances I think, you should program without too much operators, because a deflation of operators leads to - hm - deflation of the language. Thats the same, as if everybody can create new words: after a short time, nobody can understand anybody. Hmmmm. But we can make this to a principle in this very, very closed context. So: What about if we can create new operators inside PHP with PHP? I think not more than 36 operators are needed at any time in a project. So we can do this: set_operator_handler('i', function ($b, $c) { if (empty($b)) return $b; return $b; }, OPERATOR_HANDLE_UNSET_WITHOUT_WARNINGS) then we can do this: $a = $a ?i: $b; This should help for this case and could be a great things for those very special cases, when you need the same operation over and over. Comments ---------------- Context: I think those operators should be global. Security: Hm. Could operators be overwritten? How to test, if an operator already exists? I think it should work like including a file. E. g. set_operator_handler_once() should be possible, so that a second call isn't executed. Other things: I don't like the first operator (the operator-name). Any goof idea? -- Alex Aulbach -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php