PhpStorm 中的 IntelliJ 结构搜索以查找 foreach 块中使用的特定函数

IntelliJ Structural Search in PhpStorm to find specific function used within foreach block

我需要在其中使用 current() 函数的任何地方找到所有 foreach 块。下面是示例代码块,应该找到它。

$x=12;
foreach ($array as &$val)
{
    $cur=current($array);
    $x=$x+$cur;
    echo $cur;
}

你可以试试这个:

foreach ($statement$) {
$st1$
$var$ = current($arr$);
$st2$
}

测试代码:

<?php

$x=12;
foreach ($array as &$val)
{
    $cur=current($array);
    $x=$x+$cur;
    echo $cur;
}

foreach ($array as &$val)
{
    $cur=current($array);
}

foreach ($array as &$val) {
    $x=$x+$cur;

    $cur = current($array);
}

foreach ($array as &$val) {
    $x=$x+$cur;
    echo $cur;
    echo $cur;
    $cur = current($array);
}

foreach ($array as &$val) {
    $x=$x+$cur;
    echo $cur;
    echo $cur;
}

结果:

备注:

  1. 您可以将 Search target 从“完全匹配”更改为某些特定的 placeholder/variable,它将仅突出显示该位置而不是整个 foreach 块。 .

  2. 该规则不会找到没有分配或以某种不同方式使用 current() 的地方(必须是 $someVar = current($someArray);)。

    您可以为此创建一个单独的规则(我现在不确定如何将它们合并在一起),例如

foreach ($statement$) {
$st1$
current($arr$);
$st2$
}