- 实现了子类方法重写时参数数量、返回类型、参数类型的兼容性检查 - 添加了按引用传递参数和可变参数的签名匹配验证 - 新增了继承错误测试用例文件 - 重构了方法重写检查逻辑,提取为独立的验证函数 - 更新了错误提示信息以显示具体的不兼容原因pull/3/head
parent
4faff75f62
commit
23a100caf4
5 changed files with 98 additions and 4 deletions
@ -0,0 +1,12 @@ |
|||||||
|
<?php |
||||||
|
class A |
||||||
|
{ |
||||||
|
function f($x) {} |
||||||
|
} |
||||||
|
|
||||||
|
class B extends A |
||||||
|
{ |
||||||
|
function f(&$x) {} |
||||||
|
} |
||||||
|
|
||||||
|
function main() {} |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
<?php |
||||||
|
class A |
||||||
|
{ |
||||||
|
function f(): int { return 1; } |
||||||
|
} |
||||||
|
|
||||||
|
class B extends A |
||||||
|
{ |
||||||
|
function f(): string { return ""; } |
||||||
|
} |
||||||
|
|
||||||
|
function main() {} |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
<?php |
||||||
|
class A |
||||||
|
{ |
||||||
|
function f(int $x) {} |
||||||
|
} |
||||||
|
|
||||||
|
class B extends A |
||||||
|
{ |
||||||
|
function f(string $x) {} |
||||||
|
} |
||||||
|
|
||||||
|
function main() {} |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
<?php |
||||||
|
class A |
||||||
|
{ |
||||||
|
function f($x) {} |
||||||
|
} |
||||||
|
|
||||||
|
class B extends A |
||||||
|
{ |
||||||
|
function f(...$x) {} |
||||||
|
} |
||||||
|
|
||||||
|
function main() {} |
||||||
Loading…
Reference in new issue