Rumah > Soal Jawab > teks badan
Menggunakan Rektor, saya cuba menukar perkara berikut.
$integer = some_made_up_function_call($parm1, $parm2);
Masuk di sini:
$integer = $parm1->made_up_method_call($parm2)['hard_coded_index'];
Soalan saya adalah yang terakhir ['hard_coded_index']
. Saya tidak tahu bagaimana untuk melakukan ini. Apa yang saya ada setakat ini ialah.
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]] ); }
P粉1619397522024-02-26 10:14:26
Okay, saya faham...
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); }