Các tài liệu PHP không phải là rất rõ ràng và chỉ nói rằng:Sự khác nhau giữa SplObjectStorage :: chứa và SplObjectStorage :: offsetExists là gì?
SplObjectStorage :: offsetExistsKiểm tra xem một đối tượng tồn tại trong lưu trữ. (PHP> = 5.3.0)
SplObjectStorage :: chứaKiểm tra nếu lưu trữ chứa các đối tượng được cung cấp. (PHP> = 5.1.0)
Điều đó có vẻ tương tự với tôi.
CÂU HỎI: Ngoài chênh lệchViệc chỉ có sẵn trong 5.3.0, chênh lệch giữa 2 là gì?
thử nghiệm nhỏ tôi đã tiến hành ...
$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));
đầu ra:
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
Cám ơn lặn vào nguồn. – PeeHaa
Tuyệt vời, cảm ơn rất nhiều! – Tivie