ID: 26456
Updated by: [EMAIL PROTECTED]
Reported By: schlueter at phpbar dot de
Status: Verified
Bug Type: Zend Engine 2 problem
Operating System: linux
PHP Version: 5CVS-2004-03-15
New Comment:
Seems like a compiler problem to me.
That's what I got when running the script via STDIN:
1314 if (fptr->type == ZEND_USER_FUNCTION &&
fptr->op_array.doc_comment) {
(gdb) p fptr->op_array.doc_comment
$1 = 0x82ce2dc "\n function increment"
If the script is run via `php script.php` fptr->op_array.doc_comment
contains expected value (i.e. the comment itself, without any garbage
data).
Previous Comments:
------------------------------------------------------------------------
[2003-11-30 04:28:55] [EMAIL PROTECTED]
Thank you for the explanation. (I've never ever run scripts like this
:). Verified..and here's short example script to test this:
<?php
class Counter {
private static $c = 0;
/**
* Increment counter
*
* @access public
* @return int
*/
function increment()
{
self::$c++;
return self::$c;
}
}
// Create an instance of the Reflection_Method class
$method= new Reflection_Method('Counter', 'increment');
// Print documentation comment
echo "\n--------------------------------------------------\n";
echo $method->getDocComment();
echo "\n--------------------------------------------------\n";
?>
Bad output (with "# php <enter> && paste script && ctrl+d):
--------------------------------------------------
function increment)
*
* @access public
* @return int
*/
--------------------------------------------------
Good output:
--------------------------------------------------
/**
* Increment counter
*
* @access public
* @return int
*/
--------------------------------------------------
------------------------------------------------------------------------
[2003-11-29 09:15:15] schlueter at phpbar dot de
I've tested now with php5-200311291230 (simply ./configure without any
paramters) and get the same results. And the exact way I'm runnig PHP
ist this:
1. I'm opening a shell window
2. $ ./php [return]
3. I put the source into the clipboard
4. I paste it into the shell window
5. Ctrl+D
6. Wrong results (see original report) appear
I hope now it's clear how I'm doing it.
I've just tested it on another Linux machine: Same results...
------------------------------------------------------------------------
[2003-11-28 20:32:22] [EMAIL PROTECTED]
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
..and show exactly HOW you run it when it doesn't work,
------------------------------------------------------------------------
[2003-11-28 17:07:52] schlueter at phpbar dot de
Description:
------------
While testing the examples from
http://sitten-polizei.de/php/reflection_api/docs/language.reflection.html
I found a (for me) unexpected beahvior with
Reflection_Function::getDocComment() and
Reflection_Method::getDocComment() the when calling PHP on the command
line without paramter and copying a test script into my shell window, so
PHP can read it from STDIN. If I call the same script from a file or
pipe (cat test.php | /opt/php5/bin/php) all seems to work.
Reproduce code:
---------------
Example 14-5 from
http://sitten-polizei.de/php/reflection_api/docs/language.reflection.class.reflection_method.html
Expected result:
----------------
===> The user-defined final public static method 'increment' (which is
a regular method)
declared in -
lines 13 to 17
having the modifiers 261[final public static]
---> Documentation:
'/**
* Increment counter
*
* @final
* @static
* @access public
* @return int
*/'
---> Invokation results in: int(1)
Actual result:
--------------
===> The user-defined final public static method 'increment' (which is
a regular method)
declared in /home/johannes/-
lines 13 to 17
having the modifiers 261[final public static]
---> Documentation:
'
final public static function increment)
final
* @static
* @access public
* @return int
*/'
---> Invokation results in: int(1)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26456&edit=1