Bug #65557 [Opn->Ver]: Constants from Core are not defined with inline scripts

From: Date: Mon, 26 Aug 2013 09:09:30 +0000
Subject: Bug #65557 [Opn->Ver]: Constants from Core are not defined with inline scripts
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-181197@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=65557&edit=1

 ID:                 65557
 Updated by:         yohgaki@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


Thread (5 messages)

« previous php.bugs (#181197) next »