xref: /PHP-5.4/Zend/tests/bug32674.phpt (revision b64823de)
1--TEST--
2Bug #32674 (exception in iterator causes crash)
3--FILE--
4<?php
5class collection implements Iterator {
6
7  private $_elements = array();
8
9  public function __construct() {
10  }
11
12  public function rewind() {
13    reset($this->_elements);
14  }
15
16  public function count() {
17    return count($this->_elements);
18  }
19
20  public function current() {
21    $element = current($this->_elements);
22    return $element;
23  }
24
25  public function next() {
26    $element = next($this->_elements);
27    return $element;
28  }
29
30  public function key() {
31    $this->_fillCollection();
32    $element = key($this->_elements);
33    return $element;
34  }
35
36  public function valid() {
37    throw new Exception('shit happend');
38
39    return ($this->current() !== false);
40  }
41}
42
43class class2 {
44  public $dummy;
45}
46
47$obj = new class2();
48$col = new collection();
49
50try {
51	foreach($col as $co) {
52  	//irrelevant
53	}
54	echo 'shouldn`t get here';
55	//$dummy = 'this will not crash';
56	$obj->dummy = 'this will crash';
57} catch (Exception $e) {
58	echo "ok\n";
59}
60?>
61--EXPECT--
62ok
63