Rumah  >  Soal Jawab  >  teks badan

Rektor PHP: tidak boleh menambah indeks tatasusunan kepada peraturan ector

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粉218361972P粉218361972211 hari yang lalu332

membalas semua(1)saya akan balas

  • P粉161939752

    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);
    }
    

    balas
    0
  • Batalbalas