PHP 8.4.2 Released!

ArrayObject::offsetSet

(PHP 5, PHP 7, PHP 8)

ArrayObject::offsetSetDéfinie $newval comme valeur à l'$index spécifié

Description

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

Définit value comme valeur à l'index key spécifié.

Liste de paramètres

key

L'index à définir.

value

La nouvelle valeur de l'index key.

Valeurs de retour

Aucune valeur n'est retournée.

Exemples

Exemple #1 Exemple avec 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);
?>

L'exemple ci-dessus va afficher :

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

Voir aussi

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