Tại sao biến PHP của tôi không được xác định?

Sau khi đọc bài đăng này, bạn sẽ có đủ giải pháp thay thế để bảo vệ chương trình của mình khỏi những thông báo như vậy

nội dung

  • Chỉ mục không xác định trong PHP là gì?
  • Nguyên nhân của chỉ mục không xác định trong PHP là gì?
    • – Ví dụ mã hóa
  • Làm thế nào để giải quyết lỗi?
    • – Mã hóa ví dụ về loại bỏ cảnh báo
  • Thông báo biến không xác định PHP
    • – Giải Quyết Lỗi Do Con Người Gây Ra
    • – Giải quyết lỗi do không chắc chắn
    • – Giải quyết lỗi gây ra do giá trị chưa quyết định
  • Độ lệch không xác định trong PHP
    • – Khối mã mô tả nguyên nhân của thông báo độ lệch không xác định
    • – Các giải pháp chính cho Độ lệch không xác định
  • Phần kết luận

Chỉ mục không xác định trong PHP là gì?

Chỉ mục không xác định PHP là một thông báo được tạo do truy cập chỉ mục chưa đặt của một biến siêu toàn cầu. Cụ thể, thông báo được đưa ra trong khi sử dụng các biến siêu toàn cầu $_GET và $_POST. Vì vậy, bạn có thể nhận được thông báo nói trên khi làm việc với biểu mẫu HTML

Nguyên nhân của chỉ mục không xác định trong PHP là gì?

Chắc chắn, các biến đã nêu lưu trữ dữ liệu được gửi qua các biểu mẫu dựa trên phương thức biểu mẫu hiện tại. Quá trình này có thể được hiểu theo cách các trường đầu vào của biểu mẫu được gán tên duy nhất. Tiếp theo, các giá trị đã nhập trong các trường đầu vào đã cho được truy cập bằng cách chuyển tên của các trường đã nêu dưới dạng chỉ số cho biến toàn cục $_GET hoặc $ _POST

Bây giờ, nếu không có giá trị nào được nhập cho một trường cụ thể và bạn cố gắng truy cập vào cùng một giá trị, bạn sẽ nhận được thông báo PHP. Chỉ số không xác định

– Ví dụ mã hóa

Ví dụ sau đại diện cho một tập lệnh đưa ra thông báo chỉ mục không xác định

Ví dụ. bạn đã tạo một biểu mẫu đăng nhập bằng phương thức đăng. Biểu mẫu đã nêu bao gồm hai trường là “tên người dùng”, “mật khẩu” và nút đăng nhập. Bây giờ, bạn muốn truy cập thông tin đăng nhập của người dùng. Do đó, bạn sẽ nhận được thông tin chi tiết do người dùng nhập thông qua biến siêu toàn cầu $_POST như $_POST[“username”] và $_POST[“password”]

Nhưng vì lần đầu tiên các trường nhập sẽ trống, bạn sẽ nhận được hai thông báo chỉ mục PHP không xác định bên dưới các trường biểu mẫu khi tải trang web

Đây là đoạn mã mô tả kịch bản trên một cách dễ hiểu










// accessing the values entered in the input fields
$username = $_POST[“username”];
$password = $_POST[“password”];
?>

Làm thế nào để giải quyết lỗi?

Không thể phủ nhận, các thông báo chỉ mục không xác định PHP được in bên dưới các trường biểu mẫu của bạn gây tác động xấu đến người dùng của bạn đồng thời làm giảm trải nghiệm người dùng. Do đó, các thông báo được đề cập cần phải được gỡ bỏ càng sớm càng tốt. Vì vậy, ở đây bạn sẽ triển khai hàm isset() để tránh thông báo PHP. chỉ mục không xác định khi tải trang web

Hàm isset() chấp nhận một biến để kiểm tra xem giá trị của cùng một biến có phải là null không. Ngoài ra, bạn có thể kiểm tra tính vô hiệu của nhiều biến cùng một lúc

Đây là cú pháp để bạn tham khảo. isset(biến,…).

– Mã hóa ví dụ về loại bỏ cảnh báo

Ví dụ: bạn đang làm việc trên một biểu mẫu liên hệ bao gồm các trường tên, email và phản hồi. Hơn nữa, bạn có một nút gửi bên dưới các trường. Tương tự như ví dụ trên, ở đây bạn sẽ nhận được thông báo chỉ mục không xác định PHP khi tải trang web nhất định lần đầu tiên. Vì vậy, bạn sẽ sử dụng hàm isset() để kiểm tra xem biểu mẫu đã được gửi chưa trước khi truy cập các giá trị của trường nhập

Cuối cùng, bạn sẽ làm cho các thông báo biến mất như đã thấy trong khối mã này












// accessing the values entered in the input fields on form submission
if(isset($_POST[“submitBtn”])){
$name = $_POST[“name”];
$email = $_POST[“email”];
$feedback = $_POST[“feedback”];
}
?>

Thông báo biến không xác định PHP

Một loại thông báo khác giống với thông báo PHP. chỉ mục không xác định là biến không xác định PHP. Bạn sẽ thấy thông báo như vậy trên màn hình khi cố gắng sử dụng một biến mà không xác định nó trước đó trong chương trình của mình. Do đó, lý do đằng sau việc nhận được thông báo biến không xác định PHP có thể là lỗi của con người, sự không chắc chắn hoặc tình huống mà bạn chưa quyết định giá trị của biến. Chà, bất kể lý do là gì, tất cả các tình huống đã cho và giải pháp khả thi của chúng đã được nêu dưới đây để bạn tiện theo dõi

– Giải Quyết Lỗi Do Con Người Gây Ra

Vì vậy, nếu bạn quên xác định biến đã cho thì hãy xác định biến đó trước khi sử dụng biến tương tự để tránh thông báo biến không xác định trong PHP. Ngoài ra, một tên biến sai chính tả có thể dẫn đến việc đưa ra cùng một thông báo. Do đó, hãy kiểm tra cách viết và định nghĩa biến trước khi chạy tập lệnh của bạn để thực thi tập lệnh mà không cần thông báo

– Giải quyết lỗi do không chắc chắn

Giả sử bạn không chắc biến đã được xác định hay chưa. Ngoài ra, bạn không muốn xác định lại biến đã cho thì có thể sử dụng hàm isset() để xem trạng thái hiện tại của biến và xử lý nó tương ứng như sau

// tạo mảng$array1 = array();// kiểm tra . = $color;// in mảngprint_r($array1);}}?>
// creating an array
$array1 = array();
// checking if the $color variable has been defined already
if((isset($color))){
// adding the variable in the array
$array1[] .= $color;
// printing the array
print_r($array1);
}
else
{
// printing a friendly statement to define the color variable
echo “Please define the color variable.”;
}
?>

– Giải quyết lỗi gây ra do giá trị chưa quyết định

Bạn có muốn tiếp tục sử dụng một biến cụ thể trong chương trình của mình thay vì nghĩ về một giá trị hoàn hảo cho biến đó không?

// tạo biến rỗng$name = “”;// sử dụng . ;// xuất. Tên của cô gái là và cô ấy thích tạo trang web. ?>
// creating an empty variable
$name = “”;
// using the variable in a statement
echo “The name of the girl was $name and she loved to create websites.”;
// output: The name of the girl was and she loved to create websites.
?>

Độ lệch không xác định trong PHP

Bạn hiện đang làm việc với mảng và nhận được thông báo bù trừ không xác định? . Do đó, đây là cách PHP cho bạn biết rằng bạn đang cố truy cập một khóa không tồn tại trong mảng đã cho

– Khối mã mô tả nguyên nhân của thông báo độ lệch không xác định

Chẳng hạn, bạn có một mảng ô tô khác nhau, trong đó nhãn hiệu ô tô được đặt làm khóa trong khi màu sắc của ô tô được đặt làm giá trị. Khi bạn tạo mảng được đề cập vài ngày trước, bây giờ bạn đã gọi nhầm một thương hiệu xe hơi thậm chí không tồn tại. Do đó, bạn sẽ thấy PHP đi kèm với thông báo về phần bù không xác định tương tự như kết quả của khối mã bên dưới

//tạo mảng ô tô$cars = array(“Audi”
// creating an array of cars
$cars = array(
“Audi” => “Blue”,
“Ford” => “Black”,
“Toyota” => “Red”,
“Bentley” => “Grey”,
“BMW” => “White”
);
// accessing a car brand that doesn’t exist
echo $cars[“Mercedes-Benz”];
?>

– Các giải pháp chính cho Độ lệch không xác định

Thật thú vị, có hai cách sẽ giúp tránh thông báo bù đắp không xác định PHP bao gồm hàm isset() và hàm array_key_exists(). Thật vậy, bạn có thể gọi bất kỳ hàm nào đã cho để kiểm tra xem khóa mà bạn định truy cập đã tồn tại trong mảng đã cho chưa

Tuy nhiên, quy trình kiểm tra được thực hiện bởi hàm isset() khác với quy trình được thực hiện bởi hàm array_key_exists(). Tuy nhiên, bạn có thể tự do sử dụng bất kỳ chức năng nào đã nêu để tránh thông báo bù trừ không xác định

Tiếp tục với ví dụ tương tự về mảng ô tô. Tại đây, bạn sẽ sử dụng hàm isset() hoặc hàm array_key_exists() để kiểm tra xem một thương hiệu ô tô cụ thể có tồn tại trong mảng “cars” hay không. Tiếp theo, bạn sẽ sử dụng nhãn hiệu ô tô đã nêu trong chương trình của mình dựa trên kết quả được trả về bởi các hàm đã nói

Vui lòng xem đoạn mã này để triển khai hiệu quả các chức năng trên

// sử dụng hàm isset()if(isset($cars[“Mercedes-Benz”])){

// using the isset() function
if(isset($cars[“Mercedes-Benz”])){
echo $cars[“Mercedes-Benz”];
}
// or use the array_key_exists() function
if(array_key_exists(“Mercedes-Benz”,$cars)){
echo $cars[“Mercedes-Benz”];
}
?>

Phần kết luận

Chỉ mục không xác định PHP và các thông báo tương tự phát sinh do sử dụng các giá trị không được đặt. Nhưng may mắn thay, các thông báo đã cho có thể được loại bỏ bằng cách sử dụng cẩn thận các biến và kích hoạt hệ thống kiểm tra bổ sung. Ngoài ra, đây là danh sách các điểm sẽ giúp bạn tránh xa những thông báo đáng lo ngại như vậy

  • Thông báo chỉ mục không xác định PHP sẽ được tạo do sử dụng chỉ mục chưa đặt của biến siêu toàn cầu $_POST hoặc $_GET
  • Bạn có thể loại bỏ thông báo chỉ mục không xác định PHP bằng cách sử dụng hàm isset()
  • Thông báo biến không xác định trong PHP có thể được loại bỏ bằng cách sử dụng hàm isset() hoặc đặt giá trị biến thành một chuỗi rỗng
  • Thông báo phần bù không xác định sẽ được tạo khi bạn gọi một khóa mảng không tồn tại
  • Bạn có thể sử dụng hàm isset() hoặc hàm array_key_exists() để truy cập các khóa mảng mà không nhận được bất kỳ thông báo nào

Tại sao biến PHP của tôi không được xác định?
Mặc dù các thông báo không ngăn quá trình thực thi chương trình của bạn, nhưng việc có thông báo tương tự trên màn hình của bạn có thể gây khó chịu khiến bạn phải tìm kiếm các giải pháp như những giải pháp đã chia sẻ ở trên

5/5 - (18 phiếu)

  • Tác giả
  • Bài viết gần đây

Tại sao biến PHP của tôi không được xác định?

Vị trí là tất cả

Vị trí là tất cả. Tài nguyên Go-To của bạn để Tìm hiểu & Xây dựng. CSS, JavaScript, HTML, PHP, C++ và MYSQL

Tại sao biến của tôi không được xác định?

Biến chưa được gán giá trị thuộc loại không xác định. Một phương thức hoặc câu lệnh cũng trả về không xác định nếu biến đang được đánh giá không có giá trị được gán. Hàm trả về không xác định nếu giá trị không được trả về.

Làm cách nào để sửa phần bù không xác định trong PHP?

Có thể tránh lỗi bằng cách sử dụng phương thức isset() . Phương thức này sẽ kiểm tra key của mảng đã khai báo có giá trị null hay không. Nếu có, nó trả về false, ngược lại, nó trả về true cho mọi trường hợp. Loại lỗi này xảy ra với mảng khi chúng ta sử dụng khóa của mảng không được đặt.

Làm cách nào để kiểm tra xem biến có được xác định trong PHP không?

Hàm isset() kiểm tra xem một biến có được đặt hay không, nghĩa là biến đó phải được khai báo và không phải là NULL. Hàm này trả về true nếu biến tồn tại và không phải là NULL, ngược lại trả về false.