SplObjectStorage::offsetGet

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

SplObjectStorage::offsetGetRetourne les données associées à un objet

Description

public SplObjectStorage::offsetGet(object $object): mixed

Retourne les données associées à un objet dans le stockage.

Liste de paramètres

object

L'objet à rechercher.

Valeurs de retour

Les données précédemment associées avec l'objet.

Erreurs / Exceptions

Lance une exception UnexpectedValueException lorsque object n'a pû être trouvé.

Exemples

Exemple #1 Exemple avec SplObjectStorage::offsetGet()

<?php
$s
= new SplObjectStorage;

$o1 = new stdClass;
$o2 = new stdClass;

$s[$o1] = "hello";
$s->attach($o2);


var_dump($s->offsetGet($o1)); // Similaire à $s[$o1]
var_dump($s->offsetGet($o2)); // Similaire à $s[$o2]
?>

Résultat de l'exemple ci-dessus est similaire à :

string(5) "hello"
NULL

Voir aussi

add a note

User Contributed Notes 2 notes

up
1
acgrid
9 years ago
The performance of SplObjectStorage in PHP7.0.7 has boosted a lot.SplObjectStoragedouble(1.3110690116882)[object_hash => value]double(2.4147419929504)
up
1
kontrollfreak+php at gmail dot com
10 years ago
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
To Top