- 在属性访问时检查未定义变量并报告错误 - 初始化类对象处理器以支持对象操作 - 添加对未定义变量属性访问的测试用例 - 添加对未定义变量方法调用的测试用例 - 为动态代码中的类型化属性取消设置添加测试pull/3/head
parent
72cf8e7166
commit
e6c3e22f6e
5 changed files with 77 additions and 1 deletions
@ -0,0 +1,29 @@ |
||||
<?php |
||||
|
||||
class FooBase { |
||||
function bar() |
||||
{ |
||||
var_dump(__CLASS__); |
||||
} |
||||
function doSomething() { |
||||
$this->bar(); |
||||
} |
||||
} |
||||
|
||||
class FooChild extends FooBase { |
||||
function bar() |
||||
{ |
||||
var_dump(__CLASS__); |
||||
} |
||||
} |
||||
|
||||
function bar(FooBase $o) |
||||
{ |
||||
$o->doSomething(); |
||||
} |
||||
|
||||
function main() { |
||||
$o = new FooChild(); |
||||
$o2 = any($o); |
||||
bar($o2); |
||||
} |
||||
@ -0,0 +1,28 @@ |
||||
--TEST-- |
||||
unset typed property via dynamic code |
||||
--FILE-- |
||||
<?php |
||||
|
||||
class FooObject { |
||||
public int $value = 42; |
||||
} |
||||
|
||||
function main() { |
||||
$base = new FooObject(); |
||||
$base->value += 1; |
||||
var_dump($base->value); |
||||
|
||||
eval('function test(FooObject $obj) { |
||||
unset($obj->value); |
||||
}'); |
||||
|
||||
test($base); |
||||
var_dump($base->value); |
||||
|
||||
echo "done\n"; |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
int(43) |
||||
int(0) |
||||
done |
||||
Loading…
Reference in new issue