Khi mã "chống tương lai" bằng cách thử nghiệm trên PHP 5.4, tôi nhận được một cảnh báo mà tôi không hiểu.Chỉ số mảng của tôi là 'bù trừ chuỗi bất hợp pháp' theo cách nào?
function __clone() {
$this->changed = TRUE;
foreach ($this->conditions as $key => $condition) {
if (
$condition['field']
instanceOf QueryConditionInterface) {
$this->conditions[$key]['field'] = clone($condition['field']);
}
}
}
Tôi đã tách ra $condition['field']
thành hàng riêng để giảm số lượng mã cần tập trung vào. Về dòng cụ thể, PHP có này để nói
Cảnh báo: chuỗi bất hợp pháp bù đắp
'field'
trongDatabaseCondition->__clone()
Và tôi chỉ không thể nhìn thấy như thế nào 'lĩnh vực', là một chuỗi bất hợp pháp bù đắp. Tôi đoán rằng tôi chỉ thiếu một cái gì đó hiển nhiên, nhưng nếu cộng đồng không thể tìm thấy một vấn đề, tôi sẽ gửi một báo cáo lỗi.
Tôi giải thích cảnh báo là "Không có trường hợp nào là 'trường' là khóa hợp lệ". Lỗi này sẽ có ý nghĩa nếu tôi đã cố gắng cho chúng tôi ví dụ như một mảng như là một chìa khóa.
Đánh giá mã là để cải thiện mã làm việc. Các câu hỏi cụ thể về ý nghĩa của cảnh báo là không có chủ đề ở đó. –
Bạn có thể 'var_dump ('$ this-> conditions');'? –
Lỗi này cũng xảy ra khi cài đặt Drupal theo PHP 5.4 http://drupal.org/node/1483986 Tôi tin rằng một cái gì đó trong PHP 5.4 bị hỏng, hoặc có lẽ 'trường' bây giờ là một từ khóa PHP dành riêng mà không thể được sử dụng cho mảng, nhưng Tôi đang hướng tới một lỗi PHP. Nó được báo cáo rằng lỗi này không xảy ra trong các phiên bản trước trên PHP. – Brain2000