Bug->Doc #52605 [Opn]: get_class(NULL) returns class name when called insid member function of a class

From: Date: Sun, 15 Aug 2010 02:06:15 +0000
Subject: Bug->Doc #52605 [Opn]: get_class(NULL) returns class name when called insid member function of a class
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-4855@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=52605&edit=1 ID: 52605 Updated by: cataphract@php.net Reported by: rahul dot pache at gmail dot com Summary: get_class(NULL) returns class name when called insid member function of a class Status: Open -Type: Bug +Type: Documentation Problem Package: *General Issues Operating System: windows 7 PHP Version: 5.3.3 Block user comment: N New Comment: This is actually a documentation problem. The convention is to give internal functions that have optional arguments a default value and have them behave the same way when the default value is given and when the argument's not passed at all. In PHP 5.2, you could not pass an argument to get_class and have it have the same behavior as when nothing is passed. This was fixed in PHP 5.3 by making "NULL" the default argument value. Previous Comments: ------------------------------------------------------------------------ [2010-08-14 23:31:00] rahul dot pache at gmail dot com Description: ------------ get_class(NULL) returns class name when called inside member function of a class. <?php CLASS foo { public static function bar() { echo get_class(NULL); } public function baz() { echo get_class(NULL); } } foo::bar(); echo "<br>"; $f = new foo(); $f->baz(); ?> output: foo foo Expected output: Warning: get_class() called without object from outside a class in filename.php on line 4 Warning: get_class() called without object from outside a class in filename.php on line 7 -------Message-------- When some string/int is sent an expected output is produced that is a warning message. I am using EasyPHP 5.3.3. This error does not exists in PHP 5.2.6 ---------------------- ------phpinfo()------- [just first table] System Windows NT RAHUL-PC 6.1 build 7600 (Unknow Windows version Ultimate Edition) i586 Build Date Jul 21 2010 20:00:47 Compiler MSVC6 (Visual C++ 6.0) Architecture x86 Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--disable-isapi" "--without-mssql" "-- without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=D:\php- sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php- sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=D:\php- sdk\oracle\instantclient11\sdk,shared" "--enable-object-out-dir=../obj/" "-- enable-com-dotnet" "--with-mcrypt=static" Server API Apache 2.0 Handler Virtual Directory Support enabled Configuration File (php.ini) Path C:\Windows Loaded Configuration File D:\EasyPHP\apache\php.ini Scan this dir for additional .ini files (none) Additional .ini files parsed (none) PHP API 20090626 PHP Extension 20090626 Zend Extension 220090626 Zend Extension Build API220090626,TS,VC6 PHP Extension Build API20090626,TS,VC6 Debug Build no Thread Safety enabled Zend Memory Manager enabled Zend Multibyte Support disabled IPv6 Support enabled Registered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, compress.bzip2, phar Registered Stream Socket Transports tcp, udp Registered Stream Filters convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*, bzip2.* Test script: --------------- <?php CLASS foo { public static function bar() { echo get_class(NULL); } public function baz() { echo get_class(NULL); } } foo::bar(); echo "<br>"; $f = new foo(); $f->baz(); ?> Expected result: ---------------- Warning: get_class() called without object from outside a class in filename.php on line 4 Warning: get_class() called without object from outside a class in filename.php on line 7 Actual result: -------------- foo foo ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52605&edit=1

« previous php.doc.bugs (#4855) next »