php错误报告未初始化的字符串偏移量:0

时间:2012-02-04 05:31:55

标签: php error-reporting

我正在做一些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;
}

我应该如何在开发模式下工作。我需要error_reporting(E_ALL);

提前感谢。

2 个答案:

答案 0 :(得分:23)

对于空字符串,您不能使用$sentence[0],这会引起您的通知。

您可以添加!empty($sentence)以检查它是否为空。

答案 1 :(得分:0)

您正在将$ sentence创建为字符串($ sentence =“ Hello World”;),然后将其作为数组调用($ sentence [0])。 不再允许。 它曾经在后台静默运行,并为您将变量更改为数组,但出现该错误,但是从PHP 7.1开始,它将完全失败。 以E_NOTICE错误的形式出现(实际上应该升级为E_DEPRECATED或类似的东西,因为它现在失败了,但无论如何)。