preg_replace n次匹配的字符串?

时间:2016-05-19 03:00:01

标签: php preg-replace

这应该是一个非常简单的问题,但我不能让它因某些原因而工作,我的框架是PHALCON

$string='GuGuSy';

我希望将其替换为

$output = 'AAB';

所以我把它编码为:

 public function graha($planet)
    {
            if(strpos($planet,'Sy')!==false){
                $planet = preg_replace("/Sy/",'B',$planet);
            }
            if(strpos($planet,'Gu')!==false){
                $planet = preg_replace("/Gu/",'A',$planet);
                    //str_replace("Gu",'A',$planet);
            }
      return $planet;
  }

但我得到的输出不正确,为什么?

我的输出是字符串是“A”只是为什么?

2 个答案:

答案 0 :(得分:0)

问题与它自己的Phalcon框架有关

当您返回值时,它似乎仅在VOLT模板系统中使用最后返回的值。所以你需要做的就是在函数中回显$ planet,以获得phalcon-volt系统中显示的正确值。

答案 1 :(得分:-1)

$string='GuGuSy';

function graha($planet)
{
$a='';   
if(strpos($planet,'Sy')!==false){
$a= $planet = preg_replace("/Sy/",'B',$planet); // $planet=GuGuB
}

if(strpos($planet,'Gu')!==false){
$a= preg_replace("/Gu/",'A',$planet);

}
return $a;       
}

echo graha($string);