PHPerKaigi 2024

ArrayObject::offsetSet

(PHP 5, PHP 7, PHP 8)

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

Açıklama

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

Sets the value at the specified index to newval.

Bağımsız Değişkenler

key

The index being set.

value

The new value for the key.

Dönen Değerler

Hiçbir değer dönmez.

Örnekler

Örnek 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);
?>

Yukarıdaki örneğin çıktısı:

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"
}

Ayrıca Bakınız

add a note

User Contributed Notes 2 notes

up
3
jerikojerk
12 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
15 years ago
If $index is null, $newval is naturally pushed onto the end of the array as ArrayObject::append
To Top