php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #10523 get_defined_functions inserts a whitespace at the end of each value.
Submitted: 2001-04-27 06:38 UTC Modified: 2001-04-27 09:15 UTC
From: maxim at maxim dot cx Assigned:
Status: Closed Package: Class/Object related
PHP Version: 4.0.4pl1 OS: Win2k
Private report: No CVE-ID: None
 [2001-04-27 06:38 UTC] maxim at maxim dot cx
Hi,

I spent an hour to understand why this simple code did not work for me:

// $functions: an array of the Db specific functions I care of.
// they are in form 'connect', 'query' etc...



$existing = get_defined_functions();
foreach($functions as $k=>$v) {
   $f = $dbms.$v;
   printf("%s $f<BR>", in_array($f, $existing['internal']) ? '+' : '-');
}



It did not return me anything at all, although it should.

The problem was:

get_defined_functions() returns a two dimensional array, in which all the values (functions) are having a (whitespace?) 'ORD(0)' at the end.

you can check it with this:



$func = get_defined_functions();

echo '<PRE>';
foreach($func['internal'] as $k=>$v) {
   printf("ASCII: '%d' \tvalue: '%s'\n", ord(substr($v, -1)), $v);
}
echo '</PRE>';



// the returns the following:

ASCII: '0' 	value: 'zend_version'
ASCII: '0' 	value: 'func_num_args'
ASCII: '0' 	value: 'func_get_arg'


and so on...

I believe that's a bug, no?


Maxim Maletsky,
maxim@maixm.cx

PHPBeginner.com

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2001-04-27 09:15 UTC] andrei@php.net
This has been fixed for 4.0.5.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 18 06:01:28 2024 UTC