ArrayObject
在线手册:中文 英文
PHP手册

ArrayObject::offsetSet

(PHP 5 >= 5.0.0)

ArrayObject::offsetSetSets the value at the specified index to newval

说明

public void ArrayObject::offsetSet ( mixed $index , mixed $newval )

Sets the value at the specified index to newval.

参数

index

The index being set.

newval

The new value for the index.

返回值

没有返回值。

范例

Example #1 ArrayObject::offsetSet() example

<?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
在线手册:中文 英文
PHP手册
PHP手册 - N: Sets the value at the specified index to newval

用户评论:

jerikojerk (22-Aug-2011 11:58)

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 (30-Sep-2008 08:20)

If $index is null, $newval is naturally pushed onto the end of the array as ArrayObject::append