2016-05-19 9 views
1

これは非常に単純な質問でなければなりませんが、私はそれはいくつかの理由のために働いてもらうカント、私のフレームワークは、私がpreg_replace n回一致する文字列?

$output = 'AAB'; 

ので、私のようにそれをコード化されたとして、これを交換することにしたいPHALCON

$string='GuGuSy'; 

次のとおりです。

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」とは?

+0

:http://ideone.com/roEhDX – Barmar

+0

はどのようphalconフレームワークに問題がある可能性がインストールされていない – mahen3d

+0

はい問題をプリプレグのような本の外部出力、またはいくつかのPHP関連のサーバーの問題を生み出しますphalconそれは自分自身の答えを表示します – mahen3d

答えて

-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); 
+0

これは正しくありません。 2回目の置換は '$ a'ではなく' $ planet'で始まるので、最初の置換を無視します。 – Barmar

+0

ここにコピーして過去の[リンク](http://phpfiddle.org)を入力し、$ string = 'SyGuSyGuSyGuSySy'と入力してください。彼が望むように正しい出力を得るでしょう。 –

+0

'$ a = $ planet ='を指定したことはありませんでした。なぜあなたはいつも同じものにそれらを設定している両方の変数が必要ですか? – Barmar

0

問題は、あなたが値を返すとき、自己

それだけVOLTのテンプレートシステムの最後の戻り値を使用しているようだPhalconフレームワークに関連していました。それで、あなたがしなければならないことは、phalcon-voltシステムで表示された正しい値を得るために関数内で$ planetをエコーし​​ます。

私はあなたの問題を再現することはできません