diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /tests/classes/iterators_004.phpt | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'tests/classes/iterators_004.phpt')
-rw-r--r-- | tests/classes/iterators_004.phpt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/classes/iterators_004.phpt b/tests/classes/iterators_004.phpt new file mode 100644 index 0000000..3fe0527 --- /dev/null +++ b/tests/classes/iterators_004.phpt @@ -0,0 +1,61 @@ +--TEST-- +ZE2 iterators must be implemented +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php + +echo "1st try\n"; + +class c1 {} + +$obj = new c1(); + +foreach($obj as $w) { + echo "object:$w\n"; +} + +echo "2nd try\n"; + +class c2 { + + public $max = 3; + public $num = 0; + + function current() { + echo __METHOD__ . "\n"; + return $this->num; + } + function next() { + echo __METHOD__ . "\n"; + $this->num++; + } + function valid() { + echo __METHOD__ . "\n"; + return $this->num < $this->max; + } + function key() { + echo __METHOD__ . "\n"; + switch($this->num) { + case 0: return "1st"; + case 1: return "2nd"; + case 2: return "3rd"; + default: return "???"; + } + } +} + +$obj = new c2(); + +foreach($obj as $v => $w) { + echo "object:$v=>$w\n"; +} + +print "Done\n"; +?> +--EXPECTF-- +1st try +2nd try +object:max=>3 +object:num=>0 +Done |