2014-04-18 36 views
0
function PigLatin($sentence) 
{ 
    $vowelSufix = "way"; 
    $consonantSufix = "ay"; 
    $vowelArray = array('a','e','o','u','i'); 
    $finalword; 

    $wordArray = explode(' ', $sentence); 
    foreach ($wordArray as $value) 
    { 
     $word = $value; 
     $consonant = $word[0]; 

     if (in_array($word[0], $vowelArray)) 
     { 
      $finalword = substr($word, 1). $word[0]. $vowelSufix. "<br />"; 
     } 
     else 
     { 
      for ($i=1; $i <strlen($word) ; $i++) 
      { 
       if (in_array($word[$i], $vowelArray)) 
       { 
        $finalword = substr($word, $i). $consonant. $consonantSufix . "<br />"; 
       } 
       else 
       { 
        $consonant .= $word[$i]; 
       } 
      } 
     } 
     if ($finalword[0] == $finalword[1]) 
     { 
      return substr($finalword, 1); 
     } 
     $finalword .= $finalword; 
    } 
    var_dump($wordArray); 
} 

所以basicly它giveing我後續的錯誤「未初始化字符串偏移量」。我知道這個錯誤出現,因爲我期運用陣列不proberly但我堅持,有人可以幫我嗎?PigLatin在PHP eroor

+0

什麼是「PigLatin」? – arkascha

+0

這個通知當然帶有一個行號? –

+0

@arkascha http://en.wikipedia.org/wiki/Pig_Latin – Barmar

回答

0

您的腳本不處理$word爲空的情況,如果句子中有一行有兩個空格,則會發生這種情況。如果$word是空字符串,則$word[0]將得到您報告的錯誤,因爲字符串中沒有此類字符。

更改環路:

foreach ($wordArray as $word) 
{ 
    if ($word === '') { 
     continue; 
    } 

這將跳過空話。還請注意,您不需要單獨的變量$value$word