猪拉丁语PHP错误

时间:2014-04-18 16:26:40

标签: php

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);
}

所以基本上它给了我跟随错误“未初始化的字符串偏移量”。我知道这个错误来了,因为我使用的数组不是纯粹的,但我被卡住了,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您的脚本不处理$word为空的情况,如果句子中的行中有两个空格,则会发生这种情况。如果$word为空字符串,$word[0]将收到您报告的错误,因为字符串中没有此类字符。

将循环更改为:

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

这将跳过空单词。另请注意,您不需要单独的变量$value$word