File:
[ELWIX - Embedded LightWeight unIX -] /
embedaddon /
php /
Zend /
tests /
bug33512.phpt
Revision
1.1.1.1 (vendor branch):
download - view:
text,
annotated -
select for diffs -
revision graph
Tue Feb 21 23:47:52 2012 UTC (13 years, 1 month ago) by
misho
Branches:
php,
MAIN
CVS tags:
v5_4_3elwix,
v5_4_29p0,
v5_4_29,
v5_4_20p0,
v5_4_20,
v5_4_17p0,
v5_4_17,
v5_3_10,
HEAD
php
1: --TEST--
2: Bug #33512 (unset() overloaded properties doesn't work)
3: --FILE--
4: <?php
5: class TheObj {
6: public $RealVar1, $RealVar2, $RealVar3, $RealVar4;
7: public $Var = array();
8:
9: function __set($var, $val) {
10: $this->Var[$var] = $val;
11: }
12: function __get($var) {
13: if(isset($this->Var[$var])) return $this->Var[$var];
14: else return -1;
15: }
16: function __unset($var) {
17: unset($this->Var[$var]);
18: }
19: }
20:
21: $SomeObj = new TheObj;
22:
23: // this will fine
24: $SomeObj->RealVar1 = 'somevalue';
25: $SomeObj->{'RealVar2'} = 'othervalue';
26: $SomeObj->{'RealVar'.(3)} = 'othervaluetoo';
27: $SomeObj->{'RealVar'.'4'} = 'anothervalue';
28:
29: // this will fine too
30: $SomeObj->Virtual1 = 'somevalue';
31: $SomeObj->{'Virtual2'} = 'othervalue';
32:
33: // it's can't be used since this will encounter error
34: $SomeObj->{'Virtual'.(3)} = 'othervaluetoo';
35: $SomeObj->{'Virtual'.'4'} = 'anothervalue';
36:
37: // but this will fine, ofcourse
38: $SomeObj->Var['Virtual'.(3)] = 'othervaluetoo';
39: $SomeObj->Var['Virtual'.'4'] = 'anothervalue';
40:
41:
42: var_dump($SomeObj->RealVar1);
43: print $SomeObj->{'RealVar'.(3)}."\n";
44:
45: unset($SomeObj->RealVar1);
46: unset($SomeObj->{'RealVar'.(3)});
47:
48: //the lines below will catch by '__get' magic method since these variables are unavailable anymore
49: var_dump($SomeObj->RealVar1);
50: print $SomeObj->{'RealVar'.(3)}."\n";
51:
52: // now we will try to unset these variables
53: unset($SomeObj->Virtual1);
54: unset($SomeObj->{'Virtual'.(3)});
55:
56: //but, these variables are still available??? eventhough they're "unset"-ed
57: print $SomeObj->Virtual1."\n";
58: print $SomeObj->{'Virtual'.(3)}."\n";
59: ?>
60: --EXPECT--
61: string(9) "somevalue"
62: othervaluetoo
63: int(-1)
64: -1
65: -1
66: -1
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>