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 $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 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.
PHP.mk документација
SplObjectStorage::offsetSet
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
splobjectstorage.offsetset.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
splobjectstorage.offsetset.php
SplObjectStorage::offsetSet
Референца за `splobjectstorage.offsetset.php` со подобрена типографија и навигација.
SplObjectStorage::offsetSet
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SplObjectStorage::offsetSet — Поврзува податоци со објект во складиштето
= NULL
Поврзи податоци со object во складот.
Забелешка:
SplObjectStorage::offsetSet() е псевдоним за SplObjectStorage::attach().
Вратени вредности
Не се враќа вредност.
Примери
Пример #1 SplObjectStorage::offsetSet() example
<?php
$s = new SplObjectStorage;
$o1 = new stdClass;
$s->offsetSet($o1, "hello"); // Similar to $s[$o1] = "hello";
var_dump($s[$o1]);
?>Горниот пример ќе прикаже нешто слично на:
string(5) "hello"
Види Исто така
- SplObjectStorage::attach() - Додај ги сите објекти од друг склад
- SplObjectStorage::offsetGet() - Враќа податоци поврзани со објект
- SplObjectStorage::offsetExists() - Премести се на следниот запис
- SplObjectStorage::offsetUnset() - Враќа тековен запис во складот
Белешки од корисници 1 белешка
aderh ¶
пред 2 години