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

2022-08-30 20:55:41

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

提前致谢。


答案 1

对于空字符串,您不能使用 ,这将导致您收到的通知。$sentence[0]

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


答案 2

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


推荐