Edit report at https://bugs.php.net/bug.php?id=69537&edit=1
ID: 69537
Updated by: laruence@php.net
Reported by: danack@php.net
Summary: __debugInfo with empty string for key gives error
Status: Open
Type: Bug
Package: Scripting Engine problem
Operating System: N/A
PHP Version: 5.6.8
Block user comment: N
Private report: N
New Comment:
the problem is, we use \0class_name\0property_name for private properties.
so, \0 has a special meaning if it's the lead char.
Previous Comments:
------------------------------------------------------------------------
[2015-04-29 05:21:57] laruence@php.net
$ sapi/cli/php -n -d error_reporting=-1 /tmp/1.php
A Object
(
[foo] => bar
[
Notice: Illegal member variable name in /tmp/1.php on line 14
] => bar
)
------------------------------------------------------------------------
[2015-04-28 12:35:20] danack@php.net
Hi Laruence,
Sorry, I don't understand what you mean. The tests don't cover the case when the key is
empty.
The issue also doesn't manifest when the empty key isn't the first element i.e. this:
<?php
class A{
function __debugInfo(){
return [
"foo" => 'bar',
'' => 'bar',
];
}
}
print_r(new A);
?>
works fine.
------------------------------------------------------------------------
[2015-04-28 02:42:56] laruence@php.net
or at least a expected side affect
------------------------------------------------------------------------
[2015-04-28 02:42:34] laruence@php.net
I have to say it's expected behavior
see: https://github.com/laruence/php-src/blob/master/Zend/tests/debug_info.phpt
------------------------------------------------------------------------
[2015-04-27 17:02:24] danack@php.net
Description:
------------
Returning debug info through the function __debugInfo with an empty key as the key for the first
element gives a warning message "Notice: Illegal member variable name in /in/0raS3 on line
10"
Test script:
---------------
<?php
class A{
function __debugInfo(){
return ['' => 1];
}
}
print_r(new A);
Expected result:
----------------
A Object
(
[] => 1
)
Actual result:
--------------
A Object
(
[
Notice: Illegal member variable name in /in/0raS3 on line 10
] => 1
)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=69537&edit=1