Bug #55189 [Opn]: BC break in behavior of is_a() (1st param '' no longer accepted)
| From: | jo at feuersee dot de | Date: | Tue, 12 Jul 2011 16:03:21 +0000 |
| Subject: | Bug #55189 [Opn]: BC break in behavior of is_a() (1st param '' no longer accepted) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-161830@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=55189&edit=1
ID: 55189
User updated by: jo at feuersee dot de
Reported by: jo at feuersee dot de
-Summary: BC break in behavior of is_a()
+Summary: BC break in behavior of is_a() (1st param '' no
longer accepted)
Status: Open
Type: Bug
Package: Scripting Engine problem
Operating System: Linux
PHP Version: 5.3SVN-2011-07-12 (SVN)
Block user comment: N
Private report: N
New Comment:
Changed subject to reflect that the 1st param is the important one.
Previous Comments:
------------------------------------------------------------------------
[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