2012-02-04 77 views
8

我正在做一个东西在PHP中,而不是它的调试模式。所以我我们php错误报告未初始化的字符串偏移量:0

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

在此先感谢。

+0

多一点的代码会很好。你以前使用过句子变量吗? – 2012-02-04 05:34:25

+0

好男人。我刚刚编辑。 – Elbek 2012-02-04 05:36:21

+0

运行得很好:http://ideone.com/R6y3n – mpen 2012-02-04 05:40:34

回答

18

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

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

+0

实际上我从文件中解析了一堆字符串。所以文件不是空的。有很多字符串块,但由于该方法的空格出现空字符串,并给出错误。这是我的不好。我只是检查和意识到。 TX。 – Elbek 2012-02-04 05:55:50

+0

空的问题是空(“0”)也将返回true。 – 2014-08-05 17:28:21

+0

@KeVin以编程方式0和空不同,空是没有数据,而零是有效值。 – 2016-12-30 05:19:20

相关问题