On Mon, Nov 23, 2015 at 9:52 AM, shadda <sha...@gmail.com> wrote: > Er, that should read, “anything non (null, false, undefined) is true” > >> On Nov 23, 2015, at 11:51 AM, shadda <sha...@gmail.com> wrote: >> >> Hey, thanks for responding. >> >> However, I still think that misses the point, or at least the true utility >> of what I’m proposing. >> >> In practice, you can ignore E_NOTICE and php will happily treat null and >> !isset() as the same thing in *most* cases, so that’s not a good indicator >> of truthiness. >> >> Basically in ECMA, anything non-null, false, or undefined is true. PHP is >> very similar in that regard, but our reliance on E_NOTICE to (ahem) enforce >> isset() checks is why, I assume, we’re introducing the ?? operator to begin >> with. >> >> I just think it’d be nice to have a small variation on this feature that was >> less concerned with a (defined|null) semantic and more in keeping with PHP’s >> overall handling of implicit type conversion in expressions. >> >> Does that make more sense? >> >>> On Nov 22, 2015, at 12:41 PM, Andrea Faulds <a...@ajf.me> wrote: >>> >>> Hi, >>> >>> shadda wrote: >>>> I had a question-suggestion based around the cool new operator we’re >>>> getting in PHP7, the ?? operator, which as I understand it is the >>>> functional equivalent to perl’s // operator; in that they both test for >>>> whether or not a variable is defined, rather than it’s truthiness. >>> >>> This is not strictly correct. Though something of a misnomer, the 'null >>> coalesce operator' checks if a variable doesn't exist, but also that it is >>> not null, i.e. it functions like isset(). >>> >>> Thanks. >>> >>> -- >>> Andrea Faulds >>> http://ajf.me/ >>> >>> -- >>> 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 >
Ignoring E_NOTICE is generally considered bad practice by many, and turning them off just to use ternaries instead of null coalesce (a feature we already have) doesn't seem like a benefit. The ?? is used the same as "a = b || c" in Ruby or JS. Doing that in PHP wouldn't work well as || works a bit differently, so ?? is used instead, just like C and Swift. Basically... it's all good. And even if you hate it you're months too late to raise a concern. :) -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php