Reputation: 123
I have a object 'aff' with an array 'bill' as a property.
var_dump($aff);
echo "<br/>";
print_r($aff->bill);
echo "<br/>";
var_dump($aff->bill);
echo "<br/>";
echo "<br/> $aff->bill[0]";
This returns:
affiliation Object ( [id] => 1 [afname] => TaylorGang [user1] => 18 [user2] => 19 [user3] => 0 [user4] => 0 [value1] => 65.432 [value2] => 52.14 [value3] => 0 [value4] => 0 [bill1] => Grape Soda [bill2] => Cable [bill3] => empty [bill4] => empty [due_date1] => 18 [due_date2] => 15 [due_date3] => 0 [due_date4] => 0 [startdate] => 2014-07-21 22:03:21 [user] => Array ( [0] => 18 [1] => 19 [2] => 0 [3] => 0 ) [bill] => Array ( [0] => Grape Soda [1] => Cable [2] => empty [3] => empty ) [value] => Array ( [0] => 65.432 [1] => 52.14 [2] => 0 [3] => 0 ) )
Array ( [0] => Grape Soda [1] => Cable [2] => empty [3] => empty )
array(4) { [0]=> string(10) "Grape Soda" [1]=> string(5) "Cable" [2]=> string(5) "empty" [3]=> string(5) "empty" }
Array[0]
I would expect that:
echo $aff->bill[0];
would return: 'Grape Soda'
If anyone could explain why this does not work and more importantly how I can get it to work it would be greatly appreciated.
Upvotes: 0
Views: 47
Reputation: 107518
Your string contains a complex expression, so you should wrap it up in curly braces:
echo "<br/> {$aff->bill[0]}";
Or, don't put the expression in the string (use concatenation):
echo "<br/> " . $aff->bill[0];
Without the curly braces, the [0]
part is ignored as part of the expression, effectively leaving PHP to output the type of the object ("Array"), after which it treats the [0]
as just part of the text, so the final output is effectively "<br/> " . "Array" . "[0]"
.
Upvotes: 4