> */ public function getNodeTypes() : array { return [\PhpParser\Node\Expr\FuncCall::class]; } /** * @param FuncCall $node */ public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node { if (!$this->isName($node, 'in_array')) { return null; } if (!$node->args[1]->value instanceof \PhpParser\Node\Expr\Array_) { return null; } /** @var Array_ $arrayNode */ $arrayNode = $node->args[1]->value; if (\count($arrayNode->items) !== 1) { return null; } $firstArrayItem = $arrayNode->items[0]; if (!$firstArrayItem instanceof \PhpParser\Node\Expr\ArrayItem) { return null; } $firstArrayItemValue = $firstArrayItem->value; // strict if (isset($node->args[2])) { return new \PhpParser\Node\Expr\BinaryOp\Identical($node->args[0]->value, $firstArrayItemValue); } return new \PhpParser\Node\Expr\BinaryOp\Equal($node->args[0]->value, $firstArrayItemValue); } }