dtvnnhh8992
2018-09-04 09:10
浏览 26
已采纳

当使用Regex for for循环PHP时

I need use Regex in loop PHP And I have Problem like below. when i write this code it's work fine :

$phone_number= '2222463';

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

but below code not return true :

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

Note : {2}=={$i}

图片转代码服务由CSDN问答提供 功能建议

我需要在循环PHP中使用正则表达式我有下面的问题。 当我写这段代码时,它的工作正常:

  $ phone_number ='2222463'; 
 
for($ i = 1; $ i&lt; = 9; $ i ++){
 if((preg_match(“  / ^ [$ i] {3} /“,$ phone_number))){
返回true; 
} 
} 
   
 
 

但是代码不在 返回true:

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dqj29136 2018-09-04 09:19
    已采纳
    $i = 3;
    echo "{3}", PHP_EOL, "{$i}";
    // {3}
    // 3
    

    {$...} is part of the complex PHP string interpolation syntax, and {$i} is interpreted as one variable interpolation. You need to escape/double the brackets here:

    "/^[$i]{{$i}}/"
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题