在for循环PHP中使用Regex时

时间:2018-09-04 09:10:39

标签: php regex loops

我需要在循环PHP中使用Regex,并且出现如下问题。 当我编写此代码时,它工作正常:

$phone_number= '2222463';

for ($i=1; $i <= 9; $i++) {
  if((preg_match("/^[$i]{3}/", $phone_number))){
    return true;
   }
}

但下面的代码未返回true:

for ($i=1; $i <= 9; $i++) {
  if((preg_match("/^[$i]{$i}/", $phone_number))){
    return true;
   }
}
  

注意:{2} == {$ i}

1 个答案:

答案 0 :(得分:9)

$i = 3;
echo "{3}", PHP_EOL, "{$i}";
// {3}
// 3

{$...}complex PHP string interpolation syntax的一部分,而{$i}被解释为一个变量插值。您需要在此处转义/加括号:

"/^[$i]{{$i}}/"