Làm cách nào để tránh chỉ mục không xác định?

Hướng dẫn này sẽ hướng dẫn bạn cách giải quyết thông báo lỗi biến, chỉ mục hoặc lỗi bù không xác định mà bạn đang gặp phải trong PHP. Lỗi này rất dễ phát hiện trong nhật ký cảnh báo và thông báo lỗi. Do đó, bạn thường sẽ thấy một thông báo lỗi mô tả như thế này

1. Để ý. Biến không xác định
2. Để ý. Chỉ mục chưa xác định
3. Để ý. Độ lệch không xác định

Làm cách nào để tránh chỉ mục không xác định?

Mục lục

Mô tả vấn đề

Thông báo lỗi biến, chỉ mục và bù không xác định rất phổ biến trong PHP. Vì vậy, hãy xem một số ví dụ mã sẽ xuất ra các lỗi này

ví dụ 1

Dưới đây là một ví dụ về mã sẽ xuất ra thông báo lỗi biến không xác định


Lưu ý rằng mã có biến tuổi không xác định

ví dụ 2

Tiếp theo, chúng ta có một ví dụ về mã hiển thị thông báo lỗi lỗi chỉ mục không xác định

Lưu ý rằng mảng $_POST có chỉ mục “tệp” không xác định

ví dụ 3

Cuối cùng, chúng tôi có mã hiển thị chỉ mục không xác định và lỗi bù trong PHP

 'June',
	1 => 'Abdi',
	2 => 'Moha'
);

// June
echo $students[0];

// ERROR: Undefined offset: 4
echo $students[4];

// ERROR: Undefined index: num
echo $students[num];
?>

nguyên nhân có thể

Bây giờ, hãy xem xét các nguyên nhân có thể gây ra lỗi thông báo về biến, chỉ mục và giá trị bù không xác định

biến không xác định

Biến không xác định xảy ra do một trong những lý do sau

  • Khi bạn cố gắng truy cập một biến không xác định trong PHP
  • Lỗi đánh vần. Ví dụ: nếu bạn xác định biến $student nhưng nhập $students. Đây là hai biến khác nhau không thể sử dụng thay thế cho nhau
  • Không tuân theo quy tắc khai báo biến trong PHP

phần bù không xác định

Lỗi này chủ yếu xuất hiện khi phần bù không xuất hiện trong một mảng giống như trong ví dụ 3 của chúng tôi ở trên

Chỉ số không xác định

Lỗi thông báo này chủ yếu xuất hiện khi bạn đang cố xử lý các biến không được gửi bởi biểu mẫu

Ví dụ: nếu bạn lưu giá trị đã đăng bằng mã sau

$user_email = $_POST[‘user_email’];

Lỗi chỉ mục sẽ không xuất hiện khi gửi biểu mẫu vì $user_email có thể chứa một chuỗi trống. Tuy nhiên, khi bạn truy cập trực tiếp vào trang bằng URL, PHP sẽ hiển thị lỗi 'Thông báo chỉ mục không xác định'

Phương pháp khả thi

Hãy thảo luận về các giải pháp khả thi cho các lỗi thông báo biến, chỉ mục và bù không xác định

Thực hiện theo tất cả các quy tắc khai báo biến và phân loại

Khi bạn nhận được thông báo lỗi "Biến không xác định", trước tiên bạn cần xác định tất cả các biến

Trong ví dụ của chúng tôi, chúng tôi đã xác định cả $name và $age để tránh lỗi. Tiếp theo, hãy kiểm tra xem các biến của bạn có lỗi chính tả không và sửa chúng

Lưu ý rằng các biến phân biệt chữ hoa chữ thường. Các biến siêu toàn cục như $_POST, $_GET hoặc $_SESSION phải viết hoa

Dưới đây là các quy tắc cần tuân theo khi khai báo biến

Quy tắc khai báo biến

  • Mỗi biến phải bắt đầu bằng dấu $
  • Đảm bảo không có khoảng trống trong tên biến
  • Chữ cái đầu tiên phải được bắt nguồn từ a-z, A-Z hoặc gạch dưới _
  • Tên biến phân biệt chữ hoa chữ thường. Ví dụ: $name và $NAME là hai biến khác nhau
  • Các chữ cái tiếp theo có thể là dấu gạch dưới, a-z, A-Z hoặc 0-9
  • Tên không được bắt đầu bằng một chữ cái

Có hai loại biến

  • biến được xác định trước
  • Biến do người dùng định nghĩa

biến được xác định trước

  1. $_GET
  2. $_POST
  3. $_COOKIE
  4. $_GLOBALS
  5. $_SESSION
  6. $_SERVER
  7. $_FILES
  8. $_REQUEST
  9. $_ENV
  10. $argc
  11. $argv
  12. $http_response_header

Biến do người dùng định nghĩa

  1. Phạm vi biến đổi
  2. biến biến
  3. biến tham chiếu

Nếu bạn đang sử dụng biến toàn cục, bạn cần kiểm tra xem chỉ mục có tồn tại không. Ví dụ, bạn cần khởi tạo $_SESSION với session_start(); . Khi bạn tuân theo tất cả các quy tắc khai báo và lỗi vẫn còn, bạn có thể thử Khắc phục 2 bên dưới

Kiểm tra xem các biến có được xác định trước khi tham chiếu chúng không

Khi bao gồm một tệp vào một tệp khác, một biến chưa được khởi tạo có thể gặp sự cố. Nó có thể gây ra rủi ro bảo mật lớn khi bật toàn cầu đã đăng ký. Đây là lý do tại sao hầu hết các trình soạn thảo PHP sẽ hiển thị lỗi cấp độ E_NOTICE. Bạn có thể sử dụng isset() để phát hiện xem biến có được khởi tạo không. Tốt hơn nữa, bạn có thể sử dụng hàm empty() để ngăn cảnh báo nếu một biến chưa được khởi tạo

Hàm isset() kiểm tra xem bạn đã đặt biến chưa. Nó cũng kiểm tra các giá trị null trong mảng hoặc khóa mảng của bạn. Ngoài ra, hàm empty() kiểm tra xem mảng của bạn có trống không

Các ví dụ sau ngăn lỗi bù không xác định bằng cách sử dụng các hàm isset() và empty() tương ứng

ngay lập tức()

 'June',
	1 => 'Abdi',
	2 => 'Moha'
);

if(isset($students[4])) {
  echo $students[4];
} else {
  echo "Index is not set";
}
?>

đầu ra

Index is not set

trống rỗng()

 'June',
	1 => 'Abdi',
	2 => 'Moha'
);

if(!empty($students[4])) {
    echo $students[4];
} else {
    echo "Index is empty";
}
?>

đầu ra

Index is empty

Ẩn các thông báo lỗi thừa hoặc không mong muốn

Đôi khi bạn có thể nhận được thông báo lỗi dư thừa, nhưng bạn phải đảm bảo mã của mình tốt trước khi ẩn lỗi. Bạn có thể ẩn các thông báo về biến, chỉ mục và độ lệch không xác định bằng cách sử dụng toán tử kiểm soát lỗi @ để ẩn chúng

Ví dụ

________số 8

Điều này rất không được khuyến khích vì những người mới bắt đầu có xu hướng lạm dụng nó. Bỏ qua các biến không được khai báo cho các vòng lặp và tham số chức năng là rất không phù hợp

kết thúc

Bạn có thể giải quyết các thông báo biến, chỉ mục và bù không xác định theo nhiều cách. Đầu tiên, nếu biến không được xác định, điều đó đơn giản có nghĩa là bạn chưa khai báo biến. Bạn cần tuân thủ tất cả các nguyên tắc khi khai báo biến để tránh lỗi. Tiếp theo, khi chuyển dữ liệu sang trang khác, bạn cần kiểm tra xem một biến có được đặt để tránh thông báo chỉ mục không xác định hay không. Cuối cùng, tốt nhất là đảm bảo rằng các biến được gán giá trị để ngăn các thông báo lỗi phần bù không xác định. Bạn có thể bỏ qua các lỗi thừa nhưng không nên

Bạn cũng có thể quan tâm

  • Các biến trong Bash/Shell Scripting
  • Gọi hàm không xác định idn_to_ascii()
  • Làm thế nào để trang web của bạn được chú ý
  • Xử lý lỗi trong Bash
  • Cách sử dụng hàm trong Bash Scripting


Giới thiệu về tác giả

Nhóm biên tập của Anto cũng yêu thích đám mây như bạn. Mỗi thành viên trong nhóm biên tập của Anto đều là chuyên gia về Đám mây theo cách riêng của họ. Anto Online rất tự hào trong việc giúp đỡ những người đam mê Cloud. Hãy cho chúng tôi biết nếu bạn có ý tưởng tuyệt vời cho chủ đề tiếp theo. Liên hệ với Anto Online nếu bạn muốn đóng góp

Làm cách nào để loại bỏ chỉ mục không xác định trong PHP?

Thanh toán chỉ mục không xác định có nghĩa là gì?

Thông báo Chỉ mục không xác định trong PHP là lỗi xảy ra khi chúng tôi cố gắng truy cập giá trị hoặc biến thậm chí không tồn tại trong thực tế . Chỉ mục không xác định là lỗi thông thường xuất hiện khi chúng tôi cố gắng truy cập vào biến không tồn tại.

Làm cách nào để xử lý không xác định trong PHP?

Thông báo sửa chữa. Biến không xác định bằng cách sử dụng hàm isset() . Các giải pháp. Để khắc phục loại lỗi này, bạn có thể xác định biến là toàn cục và sử dụng hàm isset() để kiểm tra xem biến đó có được đặt hay không .

Điều gì không được xác định trong PHP?

Biến không xác định. không tìm thấy định nghĩa của biến trong tệp dự án, đường dẫn bao gồm được định cấu hình hoặc trong số các biến được xác định trước PHP . Biến có thể chưa được xác định. có một hoặc nhiều đường dẫn đến dòng có cách sử dụng biến mà không xác định nó.