Doc #60602 [Com]: $env can be destructively changed.

From: Date: Sat, 05 Apr 2014 23:09:46 +0000
Subject: Doc #60602 [Com]: $env can be destructively changed.
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-11118@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60602&edit=1 ID: 60602 Comment by: jimmy_libra_98 at hotmail dot com Reported by: me at ktamura dot com Summary: $env can be destructively changed. Status: Closed Type: Documentation Problem Package: Documentation problem Operating System: OSX 10.6.8 PHP Version: 5.4SVN-2011-12-23 (SVN) Assigned To: datibbaw Block user comment: N Private report: N New Comment: kiero q me regale un poco de oro y u poco de comandos con unos heros para aser mas fuereete Previous Comments: ------------------------------------------------------------------------ [2014-03-02 22:56:25] datibbaw@php.net This bug has been fixed in the documentation's XML sources. Since the online and downloadable versions of the documentation need some time to get updated, we would like to ask you to be a bit patient. Thank you for the report, and for helping us make our documentation better. Fixed in next 5.4, 5.5 or 5.6 ------------------------------------------------------------------------ [2013-10-10 04:13:33] datibbaw@php.net The behaviour is accompanied by a notice as well: > PHP Notice: Array to string conversion in file on line number The notice comes from here: http://lxr.php.net/xref/PHP_5_4/ext/standard/proc_open.c#490 Any element in $_SERVER that's not a string will get converted. This should be reflected in the documentation. ------------------------------------------------------------------------ [2012-02-25 20:36:53] virtual dot greg at gmail dot com This does manifest in PHP 5.3.8 on OS X 10.6.8 as well. A question to the OP: the documentation says to pass NULL to use the same environment as the current PHP process. If ['argv'] is a string it is unaffected. Only if the element is an array does this modification occur. See my gist https://gist.github.com/1910448 ------------------------------------------------------------------------ [2011-12-23 16:48:01] me at ktamura dot com the "../futz/a.php" in the expected/actual output is the script's name. ------------------------------------------------------------------------ [2011-12-23 16:27:45] me at ktamura dot com Description: ------------ --- From manual page: http://www.php.net/function.proc-open#refsect1-function.proc- open-description --- The $env argument can be destructively changed as a result of calling proc_open. We should either document so or change the behavior of the function so that $env's values are not changed as a result of invoking proc_open. Test script: --------------- <?php print_r($_SERVER['argv']); $pipes = array(); proc_open('/bin/echo', array(), $pipes, null, $_SERVER); print_r($_SERVER['argv']); Expected result: ---------------- Array ( [0] => ../futz/a.php ) Array ( [0] => ../futz/a.php ) Actual result: -------------- Array ( [0] => ../futz/a.php ) Array ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60602&edit=1

« previous php.doc.bugs (#11118) next »