SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SplObjectStorage::offsetSetAssocia dados a um objeto no armazenamento

Descrição

public SplObjectStorage::offsetSet(object $object, mixed $info = null): void

Associa dados a um object no armazenamento.

Nota:

SplObjectStorage::offsetSet() é um alias de SplObjectStorage::attach().

Parâmetros

object

O object para associar dados.

info

Os dados para associar ao object.

Valor Retornado

Nenhum valor é retornado.

Exemplos

Exemplo #1 Exemplo de SplObjectStorage::offsetSet()

<?php
$s
= new SplObjectStorage;

$o1 = new stdClass;

$s->offsetSet($o1, "hello"); // Similar a $s[$o1] = "hello";

var_dump($s[$o1]);
?>

O exemplo acima produzirá algo semelhante a:

string(5) "hello"

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
1
aderh
2 years ago
Although `offsetSet` is supposed to be an alias to `attach`, real-world results do not indicate that. When extending the SplObjectStorage class, it's expected that a modification to `attach` would also affect `offsetSet`. However, it seems they need to both be extended. Consider the results below...<?phpdeclare(strict_types=1);class CustomSplObjectStorage extends SplObjectStorage{    public function offsetSet(mixed $object, mixed $info = null): void    {        print("offsetSet called\n");        parent::offsetSet($object, $info);    }    public function attach(mixed $object, mixed $info = null): void    {        print("attach called\n");        parent::attach($object, $info);    }}$a = new CustomSplObjectStorage();$a[new stdClass()] = 'ok';$a->attach(new stdClass(), 'ok');?>This prints:```offsetSet calledattach called```While we would expect...```offsetSet calledattach calledattach called```... if `offsetSet` was a true alias of `attach`. I'm not sure if this is intentional or not.
To Top