global statement removal: hphp/test [7/x]
[hiphop-php.git] / hphp / test / quick / vector-unwind-decref.php
blobb398ed1160de42636a325e8c13fb63b6c0863d6f
1 <?php
4 class logger2 {
5 public function __construct() {
6 echo "logger2 constructing\n";
9 public function __set($name, $value) {
10 echo "set was called, throwing an exception\n";
11 throw new Exception('nope');
15 class logger {
16 public function __construct() {
17 echo "logger constructing\n";
20 public function __set($name, $value) {
21 echo "set was called\n";
24 public function __get($name) {
25 echo "get was called\n";
26 return 10;
30 class c {
31 public function __construct() {
32 echo "c constructing\n";
35 public function __get($name) {
36 echo "returning new logger\n";
37 return new logger;
41 class d {
42 public function __construct() {
43 echo "d constructing\n";
46 public function __get($name) {
47 echo "returning new logger2\n";
48 return new logger2;
52 function main() {
53 echo "in main\n";
54 echo "creating new c\n";
55 $o = new c();
56 echo "calling c.__get() and logger.__set()\n";
57 $o->prop->blah = 'something';
60 echo "calling c.__get() and logger.__get()\n";
61 $x = $o->porp->halb;
62 echo "got value " . $x . "\n";
64 echo "creating new d\n";
65 $b = new d();
66 echo "calling d.__get() and logger2.__set()\n";
67 $b->fake->anotherfake = 'ello';
68 # exception!
71 try {
72 echo "calling main\n";
73 main();
74 } catch (Exception $e) {
75 echo "Caught exception\n";
78 echo "last line\n";