Corrected typo: The problem is that you refer to $test->$words. You should refer to $test->words BIG DIFFERENCE
$test->$words means find the value of $words and look for that variable in $test. That is, if $words ="abc", then $test->$words means $test->abc -----Original Message----- From: Rick Emery [mailto:[EMAIL PROTECTED]] Sent: Friday, April 05, 2002 1:28 PM To: 'Brian McLaughlin'; [EMAIL PROTECTED] Subject: RE: [PHP] Arrays within classes I corrected the syntax errors Erik found and added var_dump() after each $t equation/assignment The problem is that you refer to $test->words. You should refer to $test->words BIG DIFFERENCE $test->words means find the value of $words and look for that variable in $test. That is, if $words ="abc", then $test->$words means $test->abc Yes, it's in the manual -----Original Message----- From: Brian McLaughlin [mailto:[EMAIL PROTECTED]] Sent: Friday, April 05, 2002 12:21 PM To: [EMAIL PROTECTED] Subject: [PHP] Arrays within classes This is driving me crazy! I've created a class to hold data so I can just put the object into the session rather than saving off each piece of data separately. But I'm getting odd results from the arrays in my class that I can't explain. Here's a hunk of code that demonstrates: <?php class test { var $words; function test() $t = $this->$words; echo "1: words = $t<br>\n"; // Shows that $words is empty $this->$words = array(); $t = $this->$words; echo "2: words = $t<br>\n"; // Shows that $words is an array $t = $this->$words["Amy"]; echo "3: words[Amy] = $t<br>\n"; // Shows that $words["Amy"] is also an array -- WHAT?? } }; ####### Declare a$ to be an array echo "1: a = $a<br>\n"; // Shows that $a is empty $a = array(); $t = $a; echo "2: a = $t<br>\n"; // Shows that $a is an array $t = $a["Amy"]; echo "3: a[Amy] = $t<br>\n"; // Shows that $a["Amy"] is also empty -- GOOD echo "<br><br>"; ###### Instantiate a test object $test = new test; ?> When I declare a member variable ($words) within the class and then assign to it an empty array, it seems all the elements of that array are also arrays -- they should be empty. When I do the same thing outside of a class ($a), I get the results I expect. Can anyone tell me why that is? Thanks Brian [EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php