ArrayObject::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetSet为指定索引设定新值

说明

public ArrayObject::offsetSet(mixed $key, mixed $value): void

设置指定的索引为新值。

参数

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

up
3
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() <?phpfunction 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                )        ))
up
2
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
To Top