Edit report at http://bugs.php.net/bug.php?id=52897&edit=1
ID: 52897 Updated by: [email protected] Reported by: chealer at gmail dot com Summary: Strings variable parsing - complex syntax -Status: Open +Status: Assigned Type: Bug Package: Unknown/Other Function PHP Version: Irrelevant -Assigned To: +Assigned To: aharvey Block user comment: N New Comment: 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. Previous Comments: ------------------------------------------------------------------------ [2010-09-21 05:24:04] [email protected] 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
