Edit report at https://bugs.php.net/bug.php?id=65557&edit=1

 ID:                 65557
 Updated by:         yohg...@php.net
 Reported by:        Laurent dot Lyaudet at gmail dot com
 Summary:            Constants from Core are not defined with inline
                     scripts
-Status:             Open
+Status:             Verified
 Type:               Bug
 Package:            CGI/CLI related
-Operating System:   Debian Linux
+Operating System:   Linux
-PHP Version:        5.4.19
+PHP Version:        5.4 and later
 Block user comment: N
 Private report:     N

 New Comment:

[yohgaki@dev PHP-5.5]$ echo '<?php fwrite(STDERR, "stderr\n"); ' | 
./sapi/cli/php

Warning: fwrite() expects parameter 1 to be resource, string given in - on line 
1


Previous Comments:
------------------------------------------------------------------------
[2013-08-26 09:06:21] Laurent dot Lyaudet at gmail dot com

Additionally I noted that 
#echo '<?php fwrite(STDERR, "stderr\n"); ?>' > test
#php test
works.

Is is somehow surprising since I would have thought that the only difference 
between "php test" and "php <?php fwrite(STDERR, "stderr\n"); ?>" was the input 
stream for php code.

------------------------------------------------------------------------
[2013-08-26 08:49:43] Laurent dot Lyaudet at gmail dot com

Description:
------------
Hi,

I found a bug affecting PHP 5.3.3-7+squeeze15 and PHP 5.4.4-14+deb7u3 (cli) 
(latest debian package for current stable).
The constant STDERR is not defined for inline scripts. 
I mean it isn't defined when you type #php and then you type <?php 
myscriptcontent ?>, Ctrl+D.
But it works if you use php -r 'myscriptcontent'.
I join test script below.

I didn't tested it but I assume it is not specifically STDERR which is impacted.
It is probably the same for all Core constants.

Best regards,
   Laurent Lyaudet

Test script:
---------------
php -r 'fwrite(STDERR, "stderr\n");'

works but

root@wheezyDEVLaurent:~# php
<?php
fwrite(STDERR, "stderr\n");
?>

doesn't.

Expected result:
----------------
stderr

Actual result:
--------------
PHP Notice:  Use of undefined constant STDERR - assumed 'STDERR' in - on line 3
PHP Stack trace:
PHP   1. {main}() -:0

Notice: Use of undefined constant STDERR - assumed 'STDERR' in - on line 3

Call Stack:
   10.9477     215280   1. {main}() -:0

PHP Warning:  fwrite() expects parameter 1 to be resource, string given in - on 
line 3
PHP Stack trace:
PHP   1. {main}() -:0
PHP   2. fwrite() -:3

Warning: fwrite() expects parameter 1 to be resource, string given in - on line 
3

Call Stack:
   10.9477     215280   1. {main}() -:0
   10.9479     216048   2. fwrite() -:3




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=65557&edit=1

Reply via email to