fix dynamic static calls on object targets (#87)
parent
b356636853
commit
cbd100f906
4 changed files with 47 additions and 3 deletions
@ -0,0 +1,34 @@ |
||||
--TEST-- |
||||
Dynamic static method name on object target uses the runtime method value |
||||
--FILE-- |
||||
<?php |
||||
|
||||
class DynamicObjectStaticTarget |
||||
{ |
||||
public static function reward(string $value): string |
||||
{ |
||||
return 'base:' . $value; |
||||
} |
||||
} |
||||
|
||||
class DynamicObjectStaticChild extends DynamicObjectStaticTarget |
||||
{ |
||||
public static function reward(string $value): string |
||||
{ |
||||
return 'child:' . $value; |
||||
} |
||||
} |
||||
|
||||
function main(): void |
||||
{ |
||||
$method = 'reward'; |
||||
$target = new DynamicObjectStaticTarget(); |
||||
$child = new DynamicObjectStaticChild(); |
||||
|
||||
var_dump($target::$method('first')); |
||||
var_dump($child::$method(value: 'second')); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
string(10) "base:first" |
||||
string(12) "child:second" |
||||
Loading…
Reference in new issue