2013-04-18 26 views
5

Tôi là người mới sử dụng PHP. Một PHP đã di cư hiện nay từ 5.3.3 đến 5.4.4 phiên bản (Debian Squeeze để Debian Wheezy), và sau này, tôi nhận được lỗi này từ Apache log:PHP Cảnh báo: Cắt không hợp lệ chuỗi

> PHP Cảnh báo: chuỗi bất hợp pháp bù đắp 'phptype' trong xyz

dòng là:

self::$conn[$dsn['phptype']] = $mdb2; 

tôi cần sự giúp đỡ để khôi phục lại hệ thống.

+3

Tôi đoán hoặc 'tự :: $ conn' hoặc '$ dsn' là một chuỗi. – hek2mgl

+2

'var_dump (self :: $ conn, $ dsn)' –

+4

Bản sao có thể có của [Chuỗi không hợp lệ bù trừ Cảnh báo PHP] (http://stackoverflow.com/questions/9869150/illegal-string-offset-warning-php) –

Trả lời

0

Lỗi loại chênh lệch bất hợp pháp xảy ra khi bạn cố gắng truy cập vào chỉ mục mảng bằng cách sử dụng đối tượng hoặc mảng làm khóa chỉ mục. Kiểm tra xem mảng của bạn có phù hợp không.

4
<?php 
$a = 'Hello'; 
echo $a['whatever']; 
?> 

Như một số người trong nhận xét đang nói, làm điều gì đó như thế này có thể gây ra lỗi đó. Như bạn có thể thấy trong ví dụ trên $a là một chuỗi chứ không phải là một mảng. Điều này có nghĩa là bạn không thể truy cập nó bằng một khóa (nếu bạn muốn nhận được chữ cái thứ 3 trong chuỗi nó sẽ là ok để làm $a[2]).

Bạn cần kiểm tra xem self::$conn$dsn thực sự là mảng chứ không phải là chuỗi. Như Álvaro G. Vicario nói trong các ý kiến, bạn có thể làm điều này bằng cách bán phá giá biến:

var_dump(self::$conn, $dsn)

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