Сообщение об ошибке php Смещение неинициализированной строки: 0 - PullRequest
11 голосов
/ 04 февраля 2012

Я делаю вещи в php, а не в режиме отладки.Так что я -

error_reporting(E_ALL);

, но когда я пытаюсь получить доступ к любому символу строки, это выдает ошибку из-за сообщения об ошибке.

$sentence = "Hello World"; 
$sentence[0]   //Uninitialized string offset: 0

отредактировано:

public static function prepareSentence($sentence)
{
    $sentence = trim($sentence);
    if ($sentence[0] == '"')  //Uninitialized string offset: 0 
        $sentence = substr($sentence, 1, strlen($sentence));

    if ($sentence[strlen($sentence) - 1] == '"')
        $sentence = substr($sentence, 0, -1);

    if ($sentence[0] == '"' || $sentence[strlen($sentence) - 1] == '"')
        return self::prepareSentence($sentence);
    return $sentence;
}

Как мне поступить, чтобы работать в режиме разработки.Мне нужно сообщение об ошибке (E_ALL);

заранее спасибо.

Ответы [ 2 ]

23 голосов
/ 04 февраля 2012

Для пустой строки вы не можете использовать $sentence[0], что приведет к получению уведомления.

Вы можете добавить !empty($sentence), чтобы проверить, пусто ли оно.

0 голосов
/ 17 марта 2019

Вы создаете $ предложение в виде строки ($ предложений = "Hello World";), а затем вызываете его как массив ($ предложений [0]). Это больше не разрешено. Раньше он работал тихо в фоновом режиме и изменял переменную на массив для вас с этой ошибкой, но в PHP 7.1 он полностью потерпит неудачу. Появляется как ошибка E_NOTICE (должна быть фактически обновлена ​​до E_DEPRECATED или чего-то еще, поскольку теперь это не удается, но неважно).

...