>
>
> Hmm I'd never really thought about that before.  But now that you mention
> it, that does sound like a problem.  Honestly, I can see no value in
> maintaining a different "standard" for what constitutes a set or not-set
> variable depending on the function.  While I understand Pierre's point that
> people have used $var = NULL; in the past to unset variables, I don't think
> we should actually be supporting that.  After all, $var = (anything,
> including nothing) is, by definition, "setting" the variable to something
> (or nothing).
>
> I would analogize this to a printed dictionary.  Let's say you look up the
> word, "glarbofatass".  It's not there.  So you take out another dictionary
> and look it up again.  There's an entry for it, but the entry says, "This
> word has no meaning."  In the first dictionary, "glarbofatass" is not set.
>  In the second dictionary, "glarbofatass" is set to the state of having no
> meaning.  Nevertheless, it *is* set.
>
> I've never thought of setting something to NULL as being *literally *the
> same thing as unsetting it (though the purpose and end result are mostly
> the same).  If we didn't have an unset() function, I might feel differently
> about this.  But we do, so really I don't see why "= NULL" needs to be an
> alias for unset().  To be honest, I doubt this would pose any real BC
> breakage, either, unless someone can point me to an instance where somebody
> uses "= NULL" to unset a variable and then checks it with isset() later,
> expecting FALSE.
>
> Personally, I would consider "= NULL" == unset() but only as it pertains
> to isset() to be a bug that should be fixed, not a "feature" that should be
> preserved.  And if we make that change (perhaps target it for PHP 6 since
> it would nonetheless pose a fundamental logic change, albeit an extremely
> minor and low-impact one), then this RFC suddenly makes a lot more sense
> while allowing the scope to be limited to empty() without creating any
> annoying contradictions.
>
>
then maybe you should open a separate rfc and thread for that.
btw. $foo = null; doesn't equals/aliases  unset($foo); only isset() written
in a way so that it checks the existence of the variable AND if it exists
then checks that it's value isn't null.
maybe this isn't nice for a newcommer to the language, but it is how isset
works for a pretty long time now, and changing it would be a major BC break.
not impossible, but that would definitively deserve a separate RFC and
discussion.

-- 
Ferenc Kovács
@Tyr43l - http://tyrael.hu

Reply via email to