Đăng vào ngày 21 tháng 12 năm 2015 & NBSP;
Cập nhật bài viết: 11 tháng 12 năm 201711 Dec 2017
Thông báo PHP là lỗi mềm của người Viking trong ngôn ngữ lập trình PHP. Nếu bạn kích hoạt ghi nhật ký lỗi [gỡ lỗi] trong tệp cấu hình php.ini, chúng sẽ xuất hiện trong nhật ký của bạn theo thời gian trong các giai đoạn phát triển khác nhau. Tuy nhiên, họ không nên có mặt & nbsp; trong ứng dụng sản xuất đầy đủ [nếu chất lượng mã ở đâu đó trong số các mục tiêu của bạn]. are “soft errors” in PHP programming language. If you enable error logging [debug] in php.ini configuration file, they will pop-up in your logs from time-to-time during various development stages. They should not, however, be present in full production application [if code quality was somewhere among your goals].
Nhưng họ muốn nói gì? Bạn có nên lo lắng cho họ? Chúng có thể có nghĩa là một cái gì đó khác? Đọc bài viết này để tìm hiểu.
Logo PHP
Thông báo PHP giải thích
Một trong các loại thông báo PHP thường xuyên & nbsp; có thể được tìm thấy trong các mảng, nơi bạn có thể nhận được một cái gì đó tương tự như thế này:
Và khi bạn thực thi mã trên, bạn sẽ nhận được thông báo sau:
Thông báo PHP: Sử dụng hằng số không xác định & nbsp; name & nbsp; - Giả sử ‘tên trong /path /name – assumed ‘name’ in /path/…
Thông báo trên có nghĩa là phần tử khóa mảng của bạn đã được chỉ định/gọi mà không cần trích dẫn thoát, ví dụ:
Cú pháp thích hợp là:
Và khi bạn thực thi mã trên, bạn sẽ nhận được thông báo sau:
Và khi bạn thực thi mã trên, bạn sẽ nhận được thông báo sau:
Thông báo PHP: Sử dụng hằng số không xác định & nbsp; name & nbsp; - Giả sử ‘tên trong /path /
Thông báo trên có nghĩa là phần tử khóa mảng của bạn đã được chỉ định/gọi mà không cần trích dẫn thoát, ví dụ:
Cú pháp thích hợp là:
hoặc với các quotes kép:
Và khi bạn thực thi mã trên, bạn sẽ nhận được thông báo sau:
Và khi bạn thực thi mã trên, bạn sẽ nhận được thông báo sau:
Để in một giá trị cụ thể & nbsp; từ mảng [ví dụ: chữ c], bạn cần chỉ định khóa của nó như thế này:c] you need to specify it’s key like this:
hoặc lặp qua mảng, thay vào đó.
Đôi khi, bạn có thể cố gắng làm việc với hoặc lặp lại một khóa/phần tử mảng không xác định:
hoặc lặp qua mảng, thay vào đó.
Đôi khi, bạn có thể cố gắng làm việc với hoặc lặp lại một khóa/phần tử mảng không xác định:
Và một kết quả sẽ là đây:
hoặc lặp qua mảng, thay vào đó.
Đôi khi, bạn có thể cố gắng làm việc với hoặc lặp lại một khóa/phần tử mảng không xác định:
hoặc lặp qua mảng, thay vào đó.evaluate your code and make 100% sure WHAT and WHY is causing the above notice!? Is it merely a convention issue, undefined variable/array element, or something else – originating much earlier in the code execution flow?
Đôi khi, bạn có thể cố gắng làm việc với hoặc lặp lại một khóa/phần tử mảng không xác định:isset[] would simply hide the problem under the carpet, and leave a much much bigger issue hidden from developer’s eyes.
Và một kết quả sẽ là đây:
Thông báo PHP: & NBSP; Chỉ số không xác định: Thành phố
Loại thông báo trên cũng rất phổ biến và ý tưởng đầu tiên của bạn cho một giải pháp/sửa chữa nhanh chóng có thể là một cái gì đó như thế này:
Và đi! Thông báo sẽ không làm phiền bạn một lần nữa.
PHP Notice: unserialize[]: Error at offset X of Y bytes
Ngoài ra, bạn có thể xác định & nbsp; một $ city & nbsp; biến & nbsp; như chuỗi trống ngay trước khi bạn lặp lại nó [echo = có thể là bất kỳ chức năng xử lý biến nào khác, chỉ để làm rõ điều này - chúng tôi sử dụng Echo ở đây cho mục đích minh họa đơn giản]:
Bây giờ sẽ là thời điểm tốt để đánh giá mã của bạn và chắc chắn 100% những gì và tại sao gây ra thông báo trên !? Có phải nó chỉ là một vấn đề quy ước, phần tử biến/mảng không xác định hoặc một cái gì đó khác - bắt nguồn sớm hơn nhiều trong luồng thực thi mã?
Chúng tôi đã có vô số tình huống như trên, trong đó cái gọi là Fix Fix với ISSET [] chỉ đơn giản là che giấu vấn đề dưới thảm, và để lại một vấn đề lớn hơn nhiều ẩn trong mắt nhà phát triển.
Ví dụ, bạn cần tự hỏi mình: Có bình thường khi có giá trị không được xác định cho Key City không? Nó có được mong đợi không? Nếu không - tại sao nó lại xảy ra? Bạn chắc chắn nên ghé thăm cơ sở dữ liệu của bạn và xem mọi thứ có kiểm tra ở đó không. Rất có thể, các giá trị sẽ trống, nhưng bạn cần điều tra thêm tại sao, nếu đó là một hành vi bất ngờ/không tự nhiên.
Thông báo PHP: hằng số abs_path đã được xác định
Thông báo rất dễ dàng và lành tính, bạn có một nơi nào đó trong mã của mình một bản sao / nhiều định nghĩa của hằng số đã được xác định.item_id key/value, but on the other hand, it actually helped us track the nasty bot, otherwise it would went completely unnoticed and undetected.
Thông báo PHP: & nbsp; unserialize []: Kết thúc không mong muốn của dữ liệu tuần tự thông báo php: & nbsp; unserialize []: Lỗi ở bù x của y byte
Thông báo trên chỉ ra rằng cú pháp dữ liệu tuần tự hóa của bạn bị hỏng theo một cách nào đó [rất có thể là do giả mạo/chỉnh sửa thủ công của con người] và bạn cần sửa nó theo cách thủ công. Hoặc tái tạo dữ liệu tuần tự hóa mới, nếu có thể.
Gần đây, chúng tôi đã có một bộ thông báo rất đặc biệt lặp đi lặp lại hàng ngày trong nhật ký của chúng tôi rằng chúng tôi không thể xác định được lý do tại sao chúng xảy ra: