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

问题描述 投票:11回答:2

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

提前致谢。

php error-reporting
2个回答
23
投票

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

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


0
投票

您正在创建$ sentence作为字符串($ sentence =“Hello World”;)然后将其称为数组($ sentence [0])。那是不允许的。它过去在后台静默工作,并使用该错误将变量更改为数组,但从PHP 7.1开始,它将完全失败。作为E_NOTICE错误出现(实际上应该升级到E_DEPRECATED或者现在失败的东西,但无论如何)。

© www.soinside.com 2019 - 2024. All rights reserved.