Doc #52897 [Csd]: Strings variable parsing - complex syntax

From: Date: Mon, 27 Sep 2010 21:57:50 +0000
Subject: Doc #52897 [Csd]: Strings variable parsing - complex syntax
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-5132@lists.php.net to get a copy of this message
Edit report at http://bugs.php.net/bug.php?id=52897&edit=1 ID: 52897 User updated by: chealer at gmail dot com Reported by: chealer at gmail dot com Summary: Strings variable parsing - complex syntax Status: Closed Type: Documentation Problem Package: Documentation problem PHP Version: Irrelevant Assigned To: aharvey Block user comment: N New Comment: Thank you aharvey. Well done finding that namespace was used before they existed! The new version restricts what can be expressed, but is now over-restrictive. For instance, elements of array variables can be accessed with complex syntax ({$arr['bar]}). Previous Comments: ------------------------------------------------------------------------ [2010-09-22 10:31:59] aharvey@php.net This bug has been fixed in SVN. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2010-09-22 10:31:50] aharvey@php.net Automatic comment from SVN on behalf of aharvey Revision: http://svn.php.net/viewvc/?view=revision&amp;revision=303666 Log: Fix doc bug #52897 (Strings variable parsing - complex syntax). ------------------------------------------------------------------------ [2010-09-22 10:28:07] aharvey@php.net Cheers Joey. The use of the word "namespace" actually predates PHP itself gaining namespaces -- it's presumably meant to mean "any variable you can access in the current scope". I'll rewrite that paragraph to remove the ambiguity. ------------------------------------------------------------------------ [2010-09-21 05:24:04] joey@php.net patch #303636 documents the fact that surelynot() does not work ------------------------------------------------------------------------ [2010-09-21 04:56:06] chealer at gmail dot com Description: ------------ Strings variables parsing, as documented on http://ca2.php.net/manual/en/language.types.string.php#language.types.string.parsing is partly broken, or incorrectly documented. The documentation says: In fact, any value in the namespace can be included in a string with this syntax. Simply write the expression the same way as it would appear outside the string, and then wrap it in { and }. But this seems to only work with pre-computed values accessible through variables (using the dollar sign). This works neither for return values of functions in the namespace, nor for constants. BTW, in the examples, there is an extra backslash for the method example: This is the value of the var named by the return value of \$object->getName(): Test script: --------------- <?php namespace test; $working = "works"; const MAYBENOT = "doesnt"; function surelynot() { return "neither"; } $str = <<< DOC A {$working} B {MAYBENOT} C {surelynot()} D DOC; echo $str; Expected result: ---------------- A works B doesnt C neither D Actual result: -------------- A works B {MAYBENOT} C {surelynot()} D ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=52897&edit=1

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