2012-02-04 27 views
8

tôi đang làm một công cụ trong php và không phải là chế độ gỡ lỗi. Vì vậy, tôi là chúng tôibáo cáo lỗi php Uninitialized chuỗi offset: 0

error_reporting(E_ALL); 

nhưng khi tôi cố truy cập bất kỳ ký tự nào của chuỗi, nó cho tôi lỗi do báo cáo lỗi.

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

chỉnh sửa:

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

Làm thế nào tôi nên làm để làm việc trong chế độ dev. Tôi cần error_reporting (E_ALL);

cảm ơn trước.

+0

mã nhỏ hơn sẽ đẹp hơn. Bạn có sử dụng biến câu trước không? –

+0

Chắc chắn là người đàn ông. Tôi vừa chỉnh sửa. – Elbek

+0

chỉ chạy tốt: http://ideone.com/R6y3n – mpen

Trả lời

18

Đối với chuỗi trống, bạn không thể sử dụng $sentence[0], điều này sẽ gây ra thông báo mà bạn nhận được.

Bạn có thể thêm !empty($sentence) để kiểm tra xem nó có trống không.

+0

thực sự tôi đã phân tích chuỗi các chuỗi từ tệp. Vì vậy, các tập tin không có sản phẩm nào. Đã có rất nhiều khối chuỗi nhưng do một số khoảng trống cho phương thức đến chuỗi rỗng và đưa ra lỗi. Nó là xấu của tôi. Tôi vừa kiểm tra và nhận ra. tx. – Elbek

+0

Vấn đề với trống là trống ("0") cũng sẽ trả về true. –

+0

@KeVin lập trình 0 và trống rỗng khác nhau, trống rỗng là thiếu dữ liệu trong khi số không là giá trị hợp lệ. –

Các vấn đề liên quan