- 在编译器中实现 foo(...) 语法的占位符处理逻辑 - 添加对函数调用占位符的识别和生成支持 - 新增 first-class callable 语法的测试用例 - 实现可调用性检查的正确处理机制pull/1/head
parent
1111cc0c27
commit
2da2bc094f
2 changed files with 43 additions and 0 deletions
@ -0,0 +1,39 @@ |
|||||||
|
--TEST-- |
||||||
|
First-class callable syntax foo(...) |
||||||
|
--FILE-- |
||||||
|
<?php |
||||||
|
function multiply(int $a, int $b): int { |
||||||
|
return $a * $b; |
||||||
|
} |
||||||
|
|
||||||
|
class Calculator { |
||||||
|
public function add(int $a, int $b): int { |
||||||
|
return $a + $b; |
||||||
|
} |
||||||
|
|
||||||
|
public static function sub(int $a, int $b): int { |
||||||
|
return $a - $b; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function main(): void { |
||||||
|
$mul = multiply(...); |
||||||
|
echo $mul(6, 7) . "\n"; |
||||||
|
|
||||||
|
$calc = new Calculator(); |
||||||
|
$add = $calc->add(...); |
||||||
|
echo $add(10, 5) . "\n"; |
||||||
|
|
||||||
|
$sub = Calculator::sub(...); |
||||||
|
echo $sub(10, 3) . "\n"; |
||||||
|
|
||||||
|
var_dump(is_callable('multiply')); |
||||||
|
var_dump(is_callable('nonexistent')); |
||||||
|
} |
||||||
|
?> |
||||||
|
--EXPECT-- |
||||||
|
42 |
||||||
|
15 |
||||||
|
7 |
||||||
|
bool(true) |
||||||
|
bool(false) |
||||||
Loading…
Reference in new issue