rfc:functionarraydereferencing

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
rfc:functionarraydereferencing [2010/06/07 16:50] – Update feliperfc:functionarraydereferencing [2013/10/29 17:23] – -> Implemented nikic
Line 4: Line 4:
   * Date: May  01, 2009 (declined)   * Date: May  01, 2009 (declined)
   * Date: June 07, 2010 (re-opened)   * Date: June 07, 2010 (re-opened)
-  * Author: Felipe Pena <felipe@php.net> +  * Author: Philip Olson <philip@php.net>, Felipe Pena <felipe@php.net> 
-  * Status: Open +  * Status: Implemented in PHP 5.4
 ===== Introduction ===== ===== Introduction =====
  
Line 20: Line 19:
 <code php> <code php>
 <?php <?php
- 
-echo fruit()['a']; // apple 
  
 function fruit () { function fruit () {
   return array('a' => 'apple', 'b' => 'banana');   return array('a' => 'apple', 'b' => 'banana');
 } }
 +
 +echo fruit()['a']; // apple
 +
 ?> ?>
 </code> </code>
Line 33: Line 33:
 <code php> <code php>
 <?php <?php
 +
 +function fruit () {
 +  return array('a' => 'apple', 'b' => 'banana');
 +}
  
 $fruits = fruit(); $fruits = fruit();
 echo $fruits['a']; echo $fruits['a'];
  
-function fruit () { 
-  return array('a' => 'apple', 'b' => 'banana'); 
-} 
 ?> ?>
 </code> </code>
Line 47: Line 48:
 <code php> <code php>
 <?php <?php
- 
 function &foo(&$foo) { function &foo(&$foo) {
  return $foo;  return $foo;
 } }
 + 
 +$a = array(1);
 +$b = foo($a)[0];
 +$b = 2;
 +var_dump($b); // array(1) {  [0]=>  int(2) }
  
-$a = array(1); 
-foo($a)[0] = 2; 
-var_dump($a); // array(1) {  [0]=>  int(2) } 
 ?> ?>
 </code> </code>
Line 76: Line 78:
  
 $foo = new foo; $foo = new foo;
-var_dump($foo->bar()[1]);+var_dump($foo->bar()[1]); // float(2.3)
 $foo->array[] = $foo; $foo->array[] = $foo;
-var_dump($foo->bar()[2]->bar()[2]->array[0]);+var_dump($foo->bar()[2]->bar()[2]->array[0]); // int(1)
  
 ?> ?>
Line 88: Line 90:
   * April 3, 2004: http://markmail.org/message/sbnrb7nekwy7xt3x   * April 3, 2004: http://markmail.org/message/sbnrb7nekwy7xt3x
   * November 9, 2006: http://markmail.org/message/5bv6mtd7zorni7gc   * November 9, 2006: http://markmail.org/message/5bv6mtd7zorni7gc
 +  * June 3, 2010: http://markmail.org/message/3ancnjwqhax47n2j 
 +  * June 7, 2010: http://markmail.org/message/unplu5x3gjjjydwz [Patch proposal]
rfc/functionarraydereferencing.txt · Last modified: 2017/09/22 13:28 by 127.0.0.1