get_class

From: Date: Thu, 01 Sep 2011 19:50:25 +0000
Subject: get_class
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to [email protected] to get a copy of this message
$x = null;
get_class($x) returns get_class($this) as of 5.3.
I don't recall seeing a discussion of this on the list and
I can't find anything about this change in the archives.
The documentation is currently self-contradictory...

Under "Return Values":

Returns the name of the class of which object is an instance. Returns
FALSE if object is not an object. 

Under "Changelog":

Since 5.3.0  	 NULL became the default value for object, so passing NULL
to object now has the same result as not passing any value.

(BTW, I don't see that listed in
http://us.php.net/ChangeLog-5.php#5.3.0 )

I guess there hasn't been a lot of screaming about it, so maybe
it isn't a big deal, but it seems like a significant BC break to
me.  Maybe it's just because I've been beating my head against a
wall for so long trying to figure out why my code was behaving so
strangely. ;)  I can't believe it's impossible to differentiate
between receiving an argument and not receiving an argument.  
Would anyone really intentionally pass a null to this function 
to get the result of get_class($this)?

Now that I know about this BC break, I'm OK and can avoid
the issue, but for the sake of the next person to hit this, 
I felt I should post on the topic.  I almost posted a bug
directly, but the behavior is documented, so I thought this
would be the correct place.

- Todd



Thread (34 messages)

« previous php.internals (#55072) next »