The performance of SplObjectStorage in PHP7.0.7 has boosted a lot.
SplObjectStorage
double(1.3110690116882)
[object_hash => value]
double(2.4147419929504)
PHP.mk документација
SplObjectStorage::offsetGet
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
splobjectstorage.offsetget.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
splobjectstorage.offsetget.php
SplObjectStorage::offsetGet
Референца за `splobjectstorage.offsetget.php` со подобрена типографија и навигација.
SplObjectStorage::offsetGet
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SplObjectStorage::offsetGet — Returns the data associated with an object
= NULL
Returns the data associated with an object in the storage.
Вратени вредности
The data previously associated with the object in the storage.
Errors/Exceptions
). Ако повикот не успее, ќе врати UnexpectedValueException when object could not be found.
Примери
Пример #1 SplObjectStorage::offsetGet() example
<?php
$s = new SplObjectStorage;
$o1 = new stdClass;
$o2 = new stdClass;
$s[$o1] = "hello";
$s->attach($o2);
var_dump($s->offsetGet($o1)); // Similar to $s[$o1]
var_dump($s->offsetGet($o2)); // Similar to $s[$o2]
?>Горниот пример ќе прикаже нешто слично на:
string(5) "hello" NULL
Види Исто така
- SplObjectStorage::offsetSet() - Поврзува податоци со објект во складиштето
- SplObjectStorage::offsetExists() - Премести се на следниот запис
- SplObjectStorage::offsetUnset() - Враќа тековен запис во складот
Белешки од корисници 2 забелешки
acgrid ¶
пред 9 години
kontrollfreak+php at gmail dot com ¶
пред 10 години
SplObjectStorage::offsetGet() can become EXTREMELY slow depending on the associated data (PHP 5.6).
<?php
// SplObjectStorage
$object = new stdClass;
$test = new SplObjectStorage;
$test->attach($object, str_repeat("\0", 1024*1024));
$start = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
$test->offsetGet($object);
}
var_dump(microtime(true) - $start); // 76 seconds!
// Array + spl_object_hash()
$object = new stdClass;
$test = [];
$test[spl_object_hash($object)] = str_repeat("\0", 1024*1024);
$start = microtime(true);
for ($i = 0; $i < 1000000; $i++) {
$temp = $test[spl_object_hash($object)];
}
var_dump(microtime(true) - $start); // 0.3 seconds