diff options
Diffstat (limited to 'Zend/tests/030.phpt')
-rw-r--r-- | Zend/tests/030.phpt | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Zend/tests/030.phpt b/Zend/tests/030.phpt new file mode 100644 index 0000000..8afcb66 --- /dev/null +++ b/Zend/tests/030.phpt @@ -0,0 +1,70 @@ +--TEST-- +Overriding $this in catch and checking the object properties later. +--FILE-- +<?php + +class foo { + public $test = 0; + private $test_2 = 1; + protected $test_3 = 2; + + public function bar() { + try { + throw new Exception('foo'); + } catch (Exception $this) { + var_dump($this); + } + + $this->baz(); + } + + public function baz() { + foreach ($this as $k => $v) { + printf("'%s' => '%s'\n", $k, $v); + } + print "ok\n"; + } +} + +$test = new foo; +$test->bar(); + +?> +--EXPECTF-- +object(Exception)#%d (7) { + ["message":protected]=> + string(3) "foo" + ["string":"Exception":private]=> + string(0) "" + ["code":protected]=> + int(0) + ["file":protected]=> + string(%d) "%s030.php" + ["line":protected]=> + int(%d) + ["trace":"Exception":private]=> + array(1) { + [0]=> + array(6) { + ["file"]=> + string(%d) "%s030.php" + ["line"]=> + int(%d) + ["function"]=> + string(3) "bar" + ["class"]=> + string(3) "foo" + ["type"]=> + string(2) "->" + ["args"]=> + array(0) { + } + } + } + ["previous":"Exception":private]=> + NULL +} +'test' => '0' +'test_2' => '1' +'test_3' => '2' +ok |