|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2010-09-21 04:56 UTC] 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 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Dec 05 02:00:01 2025 UTC |
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]}).