📄 array_005.phpt
字号:
--TEST--SPL: ArrayObject/Iterator interaction--SKIPIF--<?php if (!extension_loaded("spl")) print "skip"; ?>--FILE--<?phpclass Student{ private $id; private $name; public function __construct($id, $name) { $this->id = $id; $this->name = $name; } public function __toString() { return $this->id . ', ' . $this->name; } public function getId() { return $this->id; }}class StudentIdFilter extends FilterIterator{ private $id; public function __construct(ArrayObject $students, Student $other) { FilterIterator::__construct($students->getIterator()); $this->id = $other->getId(); } public function accept() { echo "ACCEPT ".$this->current()->getId()." == ".$this->id."\n"; return $this->current()->getId() == $this->id; }}class StudentList implements IteratorAggregate{ private $students; public function __construct() { $this->students = new ArrayObject(array()); } public function add(Student $student) { if (!$this->contains($student)) { $this->students[] = $student; } } public function contains(Student $student) { foreach ($this->students as $s) { if ($s->getId() == $student->getId()) { return true; } } return false; } public function getIterator() { return $this->students->getIterator(); }}$students = new StudentList();$students->add(new Student('01234123', 'Joe'));$students->add(new Student('00000014', 'Bob'));$students->add(new Student('00000014', 'Foo'));foreach ($students as $student) { echo $student, "\n";}?>===DONE===<?php exit(0); ?>--EXPECT--01234123, Joe00000014, Bob===DONE===
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -