2014-04-18 3 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 내가하지 proberly 배열을 useing 오전하지만 난 붙어이기 때문에, 누군가가 나를 도와 주시겠습니까 나에게 .I이 오류를 알고 추적 오류 "오프셋 초기화되지 않은 문자열"을 오는 giveing입니까?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이 필요하지 않습니다.