11
PHP文檔也不是很明確,只是說:SplObjectStorage :: contains和SplObjectStorage :: offsetExists有什麼區別?
在存儲SplObjectStorage :: offsetExists檢查是否有物體存在。(PHP> = 5.3.0)
SplObjectStorage ::包含如果存儲包含所提供的對象檢查。(PHP> = 5.1.0)
對我來說,這幾乎是相同的東西。
問題:除了offsetExists僅在5.3.0中可用,2之間的區別是什麼?
小試,我進行了...
$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));
輸出:
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
感謝潛水到源。 – PeeHaa 2012-08-16 08:23:48
太好了,非常感謝! – Tivie 2012-08-16 11:16:17