La documentazione di PHP non è molto esplicito e afferma soltanto che:Qual è la differenza tra SplObjectStorage :: contiene e SplObjectStorage :: offsetExists?
SplObjectStorage :: offsetExistsVerifica se esiste un oggetto nella memoria. (PHP> = 5.3.0)
SplObjectStorage :: contieneVerifica se la memoria contiene l'oggetto fornito. (PHP> = 5.1.0)
Quale praticamente sembra la stessa cosa per me.
DOMANDA: A parte l'offset, essendo disponibili solo in 5.3.0, qual è la differenza tra il 2?
piccolo test che ho condotto ...
$s = new SplObjectStorage();
$o1 = new StdClass();
$o2 = new StdClass();
$o3 = "I'm not an object!";
$s->attach($o1);
var_dump($s->contains($o1));
var_dump($s->offsetExists($o1));
echo '<br>';
var_dump($s->contains($o2));
var_dump($s->offsetExists($o2));
echo '<br>';
var_dump($s->contains($o3));
var_dump($s->offsetExists($o3));
uscita:
boolean true
boolean true
boolean false
boolean false
Warning: SplObjectStorage::contains() expects parameter 1 to be object, string given in index.php on line 15
null
Warning: SplObjectStorage::offsetExists() expects parameter 1 to be object, string given in index.php on line 16
null
Grazie per immersione nella sorgente. – PeeHaa
Grande, grazie mille! – Tivie