使用 Rector,我正在尝试转换以下内容。
$integer = some_made_up_function_call($parm1, $parm2);
进入此:
$integer = $parm1->made_up_method_call($parm2)['hard_coded_index'];
我的问题是最后的 ['hard_coded_index'] 。我不知道如何做到这一点。到目前为止我所拥有的是。
public function refactor(Node $node): ?Node
{
if (! $this->isName($node->name, 'some_made_up_function_call')) {
return null;
}
$firstParameter = new Node\Expr\Variable($node->args[0]->value->name);
return new Node\Expr\MethodCall(
$firstParameter,
'made_up_method_call',
[$node->args[1]]
);
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
好吧,我明白了...
public function refactor(Node $node): ?Node { if (! $this->isName($node->name, 'some_made_up_function_call')) { return null; } $conn = new Node\Expr\Variable($node->args[0]->value->name); $methodCall = new Node\Expr\MethodCall($conn, 'made_up_method_call', [$node->args[1]]); $arrayKey = new Node\Scalar\String_('hard_coded_index'); return new Node\Expr\ArrayDimFetch($methodCall, $arrayKey); }