ArrayObject::offsetSet()
(PHP 5, PHP 7)
为指定索引设定新的值
说明
public ArrayObject::offsetSet(mixed $index, mixed $newval): void
设置指定的索引为新的值
参数
- $index
将要被设置的索引
- $newval
参数$index所对应的新值。
返回值
没有返回值。
范例
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 (3) { ["property"]=> string(11) "prop:public" [4]=> string(4) "four" ["group"]=> array(2) { [0]=> string(2) "g1" [1]=> string(2) "g2" } } object(ArrayObject)#3 (3) { [0]=> string(4) "zero" [1]=> string(3) "one" [2]=> string(4) "last" }
参见
- ArrayObject::append() 追加新的值作为最后一个元素。
If $index is null, $newval is naturally pushed onto the end of the array as ArrayObject::append
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 ) ) )