Edit report at https://bugs.php.net/bug.php?id=55189&edit=1

 ID:                 55189
 Updated by:         s...@php.net
 Reported by:        jo at feuersee dot de
 Summary:            BC break in behavior of is_a() (1st param '' no
                     longer accepted)
-Status:             Open
+Status:             Closed
 Type:               Bug
 Package:            Scripting Engine problem
 Operating System:   Linux
 PHP Version:        5.3SVN-2011-07-12 (SVN)
-Assigned To:        
+Assigned To:        sixd
 Block user comment: N
 Private report:     N

 New Comment:

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.

This issue was discussed is various forums ever since it was introduced.
The warning message was reverted yesterday in:
http://svn.php.net/viewvc?view=revision&revision=313162


Previous Comments:
------------------------------------------------------------------------
[2011-07-12 12:03:21] jo at feuersee dot de

Changed subject to reflect that the 1st param is the important one.

------------------------------------------------------------------------
[2011-07-12 11:54:20] jo at feuersee dot de

Description:
------------
I notice a different bahavior between PHP5.3.6 and a daily build supplied by 
the openSUSE build service, designated php5-5.3.6.201107111820-83.1 with php - 
output is "PHP 5.3.7RC3-dev (cli)"

In short, is_a('', '') emits a warning with php/5.3.7rc3 which did not happen 
with 5.3.6 and AFAIK earlier versions.

I know that is_a('', '') doesn't make much sense, but it's a BC break. To be 
more precise, I stumbled across this when upgrading a PEAR repo and to my 
surprise got a bunch of warnings (Warning: Unknown class passed as parameter in 
/usr/share/php5/PEAR/PEAR.php on line 252) and tracked it down to the is_a() 
call.

I'm not really sure if this was planned and/or is a documentation issue, but 
just to be sure it is an intentional change I put this here to be discussed.

AFAIK from reading the php.internals mailing list, such a change in behavior in 
a minor update is most likely not intentional ;)

Test script:
---------------
In a shell type the following:
php -r 'printf("%d\n", is_a("", ""));'

(Note: in case of Windows OS the ' and " have to be replaced with each other)

Expected result:
----------------
0


Actual result:
--------------
Warning: Unknown class passed as parameter in Command line code on line 1

0



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=55189&edit=1

Reply via email to