global statement removal: hphp/test [7/x]
[hiphop-php.git] / hphp / test / quick / UnsetProp.php
blob3a4c9db07a322e92468cff05271be6044d13a42f
1 <?hh
3 class F {
4 public $foo;
7 function t($o, $memb) {
8 var_dump($o->$memb);
9 unset($o->$memb);
10 var_dump($o->$memb);
13 class C {
14 public $p = "C::p";
15 public $q;
16 function __unset($propName) {
17 print "In C::__unset(\"$propName\")\n";
19 function cF() {
20 unset($this->p);
21 unset($this->q);
22 unset($this->r);
26 function u() {
27 echo "------------------------\n";
28 $obj = new F;
29 $obj->foo = $x;
30 foreach ($obj as $k => $_) {
31 echo $k . "\n";
33 echo "------------------------\n";
34 $obj = new F;
35 $obj->foo = $y++;
36 foreach ($obj as $k => $_) {
37 echo $k . "\n";
41 function main() {
42 print "Test begin\n";
44 $f = new F();
45 $f->foo = 12;
46 $f->bart = "snoot";
47 var_dump($f);
49 t($f, 'foo');
50 t($f, 'bart');
51 var_dump($f);
53 $c = new C();
54 var_dump($c);
55 $c->cF();
56 var_dump($c);
58 $e = error_reporting(0);
59 u();
61 error_reporting($e);
62 print "Test end\n";
65 main();
67 function getprop($o) {
68 return $o->declprop;
70 function setprop($o, $v) {
71 $o->declprop = $v;
73 class c2 {
74 public $declprop = 'blah';
77 function main2() {
78 $o = new c2();
79 setprop($o, 'set1');
80 var_dump(getprop($o));
81 unset($o->declprop);
82 var_dump(getprop($o));
83 setprop($o, 'set2');
84 var_dump(getprop($o));
87 main2();