|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-01-27 10:17 UTC] uno at venus dot dti dot ne dot jp
Description: ------------ Variable or object property can be made with empty name. This behaviour doesn't match the manual. http://www.php.net/manual/en/language.variables.php Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*' http://www.php.net/manual/en/language.oop.php A class is a collection of variables and functions working with these variables. Reproduce code: --------------- <?php error_reporting(E_ALL); ${''} = 'abc'; echo ${''}; class X{ } $x = new X; $x->{''} = 'def'; echo $x->{''}; ?> Expected result: ---------------- Error. (warning or notice are acceptable for me) Actual result: -------------- abcdef PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Nov 18 16:00:01 2025 UTC |
It would be too slow to add checks for the various strange things you can do inside {}, simply because these checks would need to occur realtime vs script parsing time.Fmm... When you read ${''} (or $x->{''}) without assigning, PHP notices 'Undefeined variable(property): in ...' on current implementation. So I suppose that checks need to be added only when assiging new dynamic variable and performance problem may be not too heavy.