get_class() disallow null parameter RFC#2082
Conversation
|
The RFC was accepted 15-3. |
| zval *obj = NULL; | ||
|
|
||
| if (zend_parse_parameters(ZEND_NUM_ARGS(), "|o!", &obj) == FAILURE) { | ||
| if (zend_parse_parameters(ZEND_NUM_ARGS(), "|o", &obj) == FAILURE) { |
There was a problem hiding this comment.
shouldn't the logic also be removed from source which handles obj == NULL at 1016 line?
There was a problem hiding this comment.
@antanas-arvasevicius I don't think so. The parameter is still optional, and so calling get_class() returns the current scope, or gives a warning and returns false, if called from outside a class's scope.
There was a problem hiding this comment.
oh, sorry. Right, I've missed that get_class() could be still a valid call. But it's now similar effect as get_called_class(), couldn't get_called_class() work in any methods and return current class name then get_class($object); would do only one thing, returns a class name of a given object and no more else :)
There was a problem hiding this comment.
@antanas-arvasevicius get_called_class is aware of the 'late static binding' aka the real class, not the current scope class, so they are not equivalent. https://3v4l.org/ISkEZ
Changes get_class() to disallow null being a valid parameter, as that behaviour is highly astonishing.
The ratio of the number of characters in the RFC to the actual code change, is too darn high.
https://wiki.php.net/rfc/get_class_disallow_null_parameter