PHP Conference Nagoya 2025

ArrayObject::offsetSet

(PHP 5, PHP 7, PHP 8)

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

Опис

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

Sets the value at the specified index to newval.

Параметри

key

The index being set.

value

The new value for the key.

Значення, що повертаються

Не повертає значень.

Приклади

Приклад #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"
}

Прогляньте також

add a note

User Contributed Notes 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()

<?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
)

)

)
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