SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0)

SplObjectStorage::offsetSet Ассоциирует данные с объектом в контейнере

Описание

public void SplObjectStorage::offsetSet ( object $object [, mixed $data = NULL ] )

Ассоциирует данные с объектом object в контейнере.

Замечание:

SplObjectStorage::offsetSet()является псевдонимом метода SplObjectStorage::attach().

Список параметров

object

Объект object, с которым требуется связать данные.

data

Данные, которые требуется связать с объектом object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetSet()

<?php
$s 
= new SplObjectStorage;

$o1 = new StdClass;

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

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

Результатом выполнения данного примера будет что-то подобное:

string(5) "hello"

Смотрите также

Коментарии

Автор:
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...

<?php

declare(strict_types=1);

class 
CustomSplObjectStorage extends SplObjectStorage
{
    public function 
offsetSet(mixed $objectmixed $info null): void
   
{
        print(
"offsetSet called\n");
       
parent::offsetSet($object$info);
    }

    public function 
attach(mixed $objectmixed $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 called
attach called
```

While we would expect...

```
offsetSet called
attach called
attach called
```

... if `offsetSet` was a true alias of `attach`. I'm not sure if this is intentional or not.
2023-07-05 18:48:08
http://php5.kiev.ua/manual/ru/splobjectstorage.offsetset.html

    Поддержать сайт на родительском проекте КГБ