|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2001-10-21 19:41 UTC] sniper@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Sat Feb 14 09:00:01 2026 UTC |
There seems to be a problem with associative arrays, used within classes. But this problem persist only in arrays, which are use contants as its keys. There is a small test case which demonstrates a problem: <?php define("constant_1",1); define("constant_2",2); define("constant_3",3); class myClass { var $arr = array( constant_1 => "value 1", constant_2 => "value 2", constant_3 => "value 3" ); function testFunc($index) { return((isset($this->arr[$index]))?'true':'false'); } }; $class = new myClass(); echo $class->testFunc(constant_2); ?> It is easy to see, that this piece of code must write 'true' as its result, because testFunc() method called with constant, which is actually present in array. But testFunc() returns 'false' instead. It's because array keys are incorrectly treated as strings instead of actual constant values (so, for example $class->testFunc("constant_2")) will return 'true'.