ArrayObject::offsetSet
(PHP 5, PHP 7, PHP 8)
ArrayObject::offsetSet — 为指定索引设定新值
参数
key- 
      
将要被设置的索引。
 value- 
      
参数
key所对应的新值。 
返回值
没有返回值。
示例
示例 #1 ArrayObject::offsetSet() 例子
<?php
class Example {
    public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);
$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
?>以上示例会输出:
object(ArrayObject)#1 (1) {
  ["storage":"ArrayObject":private]=>
  object(Example)#2 (3) {
    ["property"]=>
    string(11) "prop:public"
    ["4"]=>
    string(4) "four"
    ["group"]=>
    array(2) {
      [0]=>
      string(2) "g1"
      [1]=>
      string(2) "g2"
    }
  }
}
object(ArrayObject)#3 (1) {
  ["storage":"ArrayObject":private]=>
  array(3) {
    [0]=>
    string(4) "zero"
    [1]=>
    string(3) "one"
    [2]=>
    string(4) "last"
  }
}
  +添加备注
  
用户贡献的备注 2 notes
  
  
  jerikojerk ¶
  
 
  13 years ago
  On my php 5.3.5 installation, i discovered that value can be set by reference and not by copy ... depending the context..
so this is différent from what a regular array() 
<?php
function set(&$x, &$a )
{
$x[] = $a;
}
$x = new ArrayObject();
$y = array();
$z = new ArrayObject();
$a =  array( 'foo' );
set($y,$a);
set($x,$a);
$z[]=$a;
$a = array( 'bar');
set($x,$a);
set($y,$a);
$z[]=$a;
print_r($x);
print_r($y);
print_r($z);
?>
// output 
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => Array
                (
                    [0] => bar
                )
            [1] => Array
                (
                    [0] => bar
                )
        )
)
Array
(
    [0] => Array
        (
            [0] => foo
        )
    [1] => Array
        (
            [0] => bar
        )
)
ArrayObject Object
(
    [storage:ArrayObject:private] => Array
        (
            [0] => Array
                (
                    [0] => bar
                )
            [1] => Array
                (
                    [0] => bar
                )
        )
)  
  
  n dot lenepveu at gmail dot com ¶
  
 
16 years ago
  If $index is null, $newval is naturally pushed onto the end of the array as ArrayObject::append备份地址:http://www.lvesu.com/blog/php/arrayobject.offsetset.php