Arquivos
hhvm/hphp/test/quick/UnsetProp.php
T
ptarjan 503f75d08b Rename test directories
These names don't make sense now that we run both suites the same
way.
2013-04-17 09:06:51 -07:00

88 linhas
1.2 KiB
PHP

<?
class F {
public $foo;
}
function t($o, $memb) {
var_dump($o->$memb);
unset($o->$memb);
var_dump($o->$memb);
}
class C {
public $p = "C::p";
public $q;
function __unset($propName) {
print "In C::__unset(\"$propName\")\n";
}
function cF() {
unset($this->p);
unset($this->q);
unset($this->r);
}
}
function u() {
echo "------------------------\n";
$obj = new F;
$obj->foo = $x;
foreach ($obj as $k => $_) {
echo $k . "\n";
}
echo "------------------------\n";
$obj = new F;
$obj->foo = $y++;
foreach ($obj as $k => $_) {
echo $k . "\n";
}
}
function main() {
print "Test begin\n";
$f = new F();
$f->foo = 12;
$f->bart = "snoot";
var_dump($f);
t($f, 'foo');
t($f, 'bart');
var_dump($f);
$c = new C();
var_dump($c);
$c->cF();
var_dump($c);
$e = error_reporting(0);
u();
error_reporting($e);
print "Test end\n";
}
main();
function getprop($o) {
return $o->declprop;
}
function setprop($o, $v) {
$o->declprop = $v;
}
class c2 {
public $declprop = 'blah';
}
function main2() {
$o = new c2();
setprop($o, 'set1');
var_dump(getprop($o));
unset($o->declprop);
var_dump(getprop($o));
setprop($o, 'set2');
var_dump(getprop($o));
}
main2();