note 120192 added to language.operators.precedence
| From: | kitchin | Date: | Mon, 21 Nov 2016 12:18:17 +0000 |
| Subject: | note 120192 added to language.operators.precedence | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-207251@lists.php.net to get a copy of this message | ||
The precedence of '->' is less than '[' in this situation: object contains
array, name of array is stored in string variable.
<?php
$farm = new StdClass;
$farm->emu = array( 'name' => 'Henry', 'age' => 9 );
$farm->rabbit = array( 'name' => 'George', 'age' => 4 );
$animal = 'rabbit';
print_r( $farm->$animal ); // ok
// print( $farm->$animal[ 'name' ] ); // wrong, [ has precedence.
print( $farm->{$animal}[ 'name' ] ); // correct, prints George.
$farm->wash = 'Suds';
$jobs = array( 'morning' => 'feed', 'evening' =>
'wash' );
print( $farm->$jobs[ 'evening' ] ); // correct, prints Suds.
print( $farm->{$jobs[ 'evening' ]} ); // correct, prints Suds.
?>
----
Server IP: 72.52.91.14
Probable Submitter: 71.53.195.73
----
Manual Page -- http://php.net/manual/en/language.operators.precedence.php
Edit -- https://master.php.net/note/edit/120192
Del: integrated -- https://master.php.net/note/delete/120192/integrated
Del: useless -- https://master.php.net/note/delete/120192/useless
Del: bad code -- https://master.php.net/note/delete/120192/bad+code
Del: spam -- https://master.php.net/note/delete/120192/spam
Del: non-english -- https://master.php.net/note/delete/120192/non-english
Del: in docs -- https://master.php.net/note/delete/120192/in+docs
Del: other reasons-- https://master.php.net/note/delete/120192
Reject -- https://master.php.net/note/reject/120192
Search -- https://master.php.net/manage/user-notes.php