Edit report at https://bugs.php.net/bug.php?id=71812&edit=1
ID: 71812
Updated by: requinix@php.net
Reported by: marcosptf at yahoo dot com dot br
Summary: wrong code example in php doc
Status: Feedback
Type: Bug
Package: Scripting Engine problem
Operating System: Fedora 20
PHP Version: ?
Block user comment: N
Private report: N
New Comment:
Try without Xdebug.
Previous Comments:
------------------------------------------------------------------------
[2016-03-13 14:54:41] marcosptf at yahoo dot com dot br
that's my version, i'll test in another computer with php7.0.
[root@localhost ~]# php --version
PHP 5.5.26 (cli) (built: Jun 11 2015 08:25:51)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
with Xdebug v2.2.7, Copyright (c) 2002-2015, by Derick Rethans
thanks for feedback!
------------------------------------------------------------------------
[2016-03-13 07:10:46] requinix@php.net
https://3v4l.org/RPAHG
Are you testing with PHP 7? Looks like there were problems with 7.0.0-3 that have been fixed with
7.0.4.
------------------------------------------------------------------------
[2016-03-13 06:53:47] marcosptf at yahoo dot com dot br
Description:
------------
Hello to everyone!!!
here ===> http://php.net/manual/en/function.forward-static-call-array.php
the docs is fine, the description about this function work is totally correct, but the code example,
is wrong;
i have write a php test to this function, and i see that the code example is fine but have a
mistake.
here ===> https://www.flickr.com/photos/marcosptf/25445244080/in/dateposted-public/
we can see if copy + paste from official php doc the code to run in php -a terminal, the result is a
warning because the function test() is call before exist.
here ===> https://www.flickr.com/photos/marcosptf/25119350863/in/dateposted-public/
we can see if move the function test() to top of code, works fine
i have open a pr to test this function ====> https://github.com/php/php-src/pull/1810
and open this bug to someone fix this mistake.
thanks from php-sp Brazil!!!!
Test script:
---------------
<?php
class A
{
const NAME = 'A';
public static function test() {
$args = func_get_args();
echo static::NAME, " ".join(',', $args)." \n";
}
}
class B extends A
{
const NAME = 'B';
public static function test() {
echo self::NAME, "\n";
forward_static_call_array(array('A', 'test'), array('more',
'args'));
forward_static_call_array( 'test', array('other', 'args'));
}
}
B::test('foo');
function test() {
$args = func_get_args();
echo "C ".join(',', $args)." \n";
}
?>
Expected result:
----------------
B
B more,args
C other,args
Actual result:
--------------
B
B more,args
PHP Warning: forward_static_call_array() expects parameter 1 to be a valid callback, function
'test' not found or invalid function name in php shell code on line 8
PHP Stack trace:
PHP 1. {main}() php shell code:0
PHP 2. B::test() php shell code:1
PHP 3. forward_static_call_array() php shell code:8
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=71812&edit=1