Hướng dẫn what is difference between null and empty in php? - sự khác biệt giữa null và rỗng trong php là gì?

Tôi là người mới đối với khái niệm trống và null. Trong khi tôi đã nỗ lực để hiểu sự khác biệt giữa họ, tôi bối rối hơn. Tôi đã bắt gặp một bài viết tại http://www.tutorialarena.com/blog/php-isset-vs-empty.php Tuy nhiên tôi vẫn không thấy khi nào bạn sẽ sử dụng ISSET và trống khi xác thực các biểu mẫu. Thấy rằng tôi không nắm bắt được sự khác biệt, tôi không muốn sử dụng các chức năng không chính xác cũng như không thể sử dụng các chức năng trong các lĩnh vực khác. Ai đó có thể đưa ra những ví dụ sẽ giúp tôi hiểu không? Tôi rất mới sử dụng mã hóa nên sẽ đánh giá cao nếu ai đó có thể cho tôi những ví dụ trong thế giới thực và đồng thời giữ cho nó đơn giản là đủ để Noob theo dõi.

Hỏi ngày 11 tháng 4 năm 2011 lúc 0:38Apr 11, 2011 at 0:38

Hướng dẫn what is difference between null and empty in php? - sự khác biệt giữa null và rỗng trong php là gì?

Đậu phộngPeanutsMonkey

6.81122 Huy hiệu vàng71 Huy hiệu bạc103 Huy hiệu đồng22 gold badges71 silver badges103 bronze badges

2

Một biến là NULL nếu nó không có giá trị và chỉ ra không nơi nào trong bộ nhớ.

empty() là một nghĩa đen của trống, ví dụ: Chuỗi "" trống, nhưng không phải là NULL.

Những điều sau đây được coi là trống rỗng:

  • "" (một chuỗi trống)
  • 0 (0 như một số nguyên)
  • 0,0 (0 như một chiếc phao)
  • "0" (0 dưới dạng chuỗi)
  • VÔ GIÁ TRỊ
  • SAI
  • mảng () (một mảng trống)
  • var $ var; (một biến được khai báo, nhưng không có giá trị trong một lớp)

Source.


Thí dụ

$aNULL.

empty($_POST['username'])
0 trống, nhưng không phải NULL.


Cập nhật

Nếu

empty($_POST['username'])
2 trống nhưng không phải NULL, khi tôi sử dụng hàm empty() và khi nào tôi sử dụng hàm
empty($_POST['username'])
5.

empty($_POST['username'])
5 sẽ trả về
empty($_POST['username'])
7 là biến đang chỉ vào NULL.

Sử dụng empty() khi bạn hiểu những gì trống (nhìn vào danh sách ở trên).

Ngoài ra, khi bạn nói nó không ở đâu trong bộ nhớ, điều đó có nghĩa chính xác là gì?

Điều đó có nghĩa là

if (! empty($name)) echo $name;
0 sẽ có trong bộ nhớ dưới dạng chuỗi có chiều dài 0.

Nếu nó là

if (! empty($name)) echo $name;
1, nó sẽ không chiếm bất kỳ bộ nhớ nào.

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:42Apr 11, 2011 at 0:42

Hướng dẫn what is difference between null and empty in php? - sự khác biệt giữa null và rỗng trong php là gì?

10

Null là một trình giữ chỗ thường có nghĩa là "không có dữ liệu về điều này có sẵn".

Việc sử dụng NULL cho điều này chỉ là một quy ước, nhưng là một quy ước khá phổ biến, đến mức một số ngôn ngữ lập trình hỗ trợ trực tiếp với Công ước. Lý do Công ước này tồn tại trong lịch sử IMHO để làm với "Con trỏ"; Nhiều lần một thủ tục sẽ được xác định để trả lại một con trỏ cho một câu trả lời và sẽ trả lại cái mà theo truyền thống được gọi là con trỏ null nếu nó không thể đưa ra câu trả lời vì một số lý do.

Trống có nghĩa là (nếu đây là một bộ) mà nó không có thành viên. Đó là một câu trả lời rõ ràng và nó rất khác so với "không có dữ liệu về điều này có sẵn".

Trong thế giới PHP, các biến rõ ràng không chính xác có giá trị null và isset trên một biến như vậy trả về sai. Đối với các mảng và chuỗi, PHP tuân theo quy ước rằng "trống" có nghĩa là "không có thành viên" mặc dù các mảng và chuỗi không phải là bộ kỹ thuật.

PHP rõ ràng có ý tưởng hài hước này rằng 0 và 0.0 cũng "trống", theo thiết kế PHP. Đó là lạm dụng khái niệm "trống" IMHO: các số riêng lẻ không phải là bộ, vì vậy 0 không thể hợp lý bằng cách "trống". Điều này chỉ dẫn đến lập trình tối nghĩa vì nó vi phạm nguyên tắc ít bất ngờ nhất. Tôi chắc chắn rằng các nhà thiết kế PHP sẽ là "số 0 là số trống" như một loại tương tự mơ hồ; Nhưng nếu tương tự là mơ hồ, tại sao phải bận tâm với nó? Nhưng sau đó PHP đầy những ý tưởng ngớ ngẩn.

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:41Apr 11, 2011 at 0:41

Hướng dẫn what is difference between null and empty in php? - sự khác biệt giữa null và rỗng trong php là gì?

IRA Baxterira BaxterIra Baxter

92K22 Huy hiệu vàng169 Huy hiệu bạc335 Huy hiệu Đồng22 gold badges169 silver badges335 bronze badges

Null là một giá trị đặc biệt nói rõ rằng biến chưa được đặt ở bất kỳ giá trị nào. Hãy cẩn thận với việc sử dụng chức năng empty() vì bạn không thể xác định rằng một biến chính xác là null khi sử dụng nó. Ví dụ: hàm empty() sẽ trả về true nếu INT được đặt thành 0. Nếu bạn cần đảm bảo một biến chính xác là NULL sử dụng

if (! empty($name)) echo $name;
5.

Để biết thêm thông tin về empty(), xem http://php.net/manual/en/function.empty.php

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:44Apr 11, 2011 at 0:44

Hướng dẫn what is difference between null and empty in php? - sự khác biệt giữa null và rỗng trong php là gì?

ChrischrisChris

7.67510 Huy hiệu vàng62 Huy hiệu bạc96 Huy hiệu Đồng10 gold badges62 silver badges96 bronze badges

Có một số câu trả lời tốt ở đây, mà tôi sẽ không lặp lại. Tuy nhiên, trong trường hợp xác thực các biểu mẫu, khi một biểu mẫu được gửi, giá trị của từng phần tử đầu vào biểu mẫu được gửi đến máy chủ trong biến

if (! empty($name)) echo $name;
7. Bạn có thể kiểm tra sự tồn tại của một đầu vào cụ thể bằng cách sử dụng
empty($_POST['username'])
5.

isset($_POST['username'])

Nếu điều này trả về đúng, thì yêu cầu này cho máy chủ là kết quả của việc đăng một biểu mẫu chứa một phần tử đầu vào có tên là "Tên người dùng". Bây giờ chúng ta biết rằng chúng ta có một giá trị cho phần tử biểu mẫu đó, chúng ta có thể xem liệu nó có giá trị hợp lệ không. empty() sẽ cho chúng tôi biết liệu người dùng có thực sự nhập bất kỳ dữ liệu nào trong trường hay liệu họ có trống không.

empty($_POST['username'])

Nếu điều đó trả về đúng thì biểu mẫu được gửi đến máy chủ có một trường có tên "Tên người dùng" nhưng người dùng đã không nhập bất cứ điều gì trước khi gửi biểu mẫu.

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:52Apr 11, 2011 at 0:52

Andrew Cooperandrew CooperAndrew Cooper

31.9K5 Huy hiệu vàng79 Huy hiệu bạc114 Huy hiệu đồng5 gold badges79 silver badges114 bronze badges

6

Đã được một lúc vì tôi đã sử dụng PHP nhưng nếu các ngôn ngữ khác là bất cứ điều gì để trống sẽ chỉ ra một đối tượng/bản đồ/mảng hiện có không có nội dung trong khi NULL sẽ chỉ ra một biến không có ý nghĩa/định nghĩa (không chính xác).

Trong cơ sở dữ liệu SQL, NULL có nghĩa là "không có giá trị".

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:43Apr 11, 2011 at 0:43

SpliffspliffSpliFF

37.4K16 Huy hiệu vàng88 Huy hiệu bạc118 Huy hiệu đồng16 gold badges88 silver badges118 bronze badges

empty() là một cách nhanh chóng tốt để xem biến có chứa bất kỳ thông tin hữu ích nào không ... đó là cho chuỗi empty() trả về đúng cho một chuỗi "" cũng như một chuỗi null.

Vì vậy, bạn có thể viết một cái gì đó như thế này:

if (! empty($name)) echo $name;

Thông tin thêm Xem tại đây: PHP: trống ()

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:45Apr 11, 2011 at 0:45

pmobleypmobleypmobley

Huy hiệu bằng đồng 1131 Silver1 silver badge6 bronze badges

empty($_POST['username'])
5 Trả về đúng nếu cả hai điều kiện này được đáp ứng:

  1. Biến đã được xác định và chưa được đặt.
  2. Biến có giá trị không null trong đó.

Một biến được tự động xác định khi nó được đặt thành một cái gì đó (bao gồm cả NULL). Điều này có một hàm ý trực tiếp trong các mảng.

$a=array();
$a['randomKey']=true;
$a['nullKey']=null;
var_dump(isset($a['randomKey'])); // true
var_dump(isset($a['nullKey'])); // true, the key has been set, set to null!
var_dump(isset($a['unsetKey'])); // false !
unset($a['randomKey']);
var_dump(isset($a['randomKey'])); // false ! it's been unset!

Từ trên cao, bạn có thể kiểm tra xem các trường $ _POST khác nhau đã được đặt. Ví dụ: một trang đã được đăng lên, đứng lên lý do, có tên nút gửi trong trường $ _POST.

empty() Mặt khác, kiểm tra xem biến có giữ giá trị không phải không. Điều này có nghĩa là các giá trị mà (int) đúc thành 0, cũng trở lại sai. Bạn có thể sử dụng điều này để xem nếu một trường $ _POST cụ thể có dữ liệu trong đó.

Đã trả lời ngày 11 tháng 4 năm 2011 lúc 0:45Apr 11, 2011 at 0:45

pmobleypmobleyKhez

Huy hiệu bằng đồng 1131 Silver2 gold badges30 silver badges51 bronze badges

empty($_POST['username'])
5 Trả về đúng nếu cả hai điều kiện này được đáp ứng:

Biến đã được xác định và chưa được đặt.

Biến có giá trị không null trong đó.

Một biến được tự động xác định khi nó được đặt thành một cái gì đó (bao gồm cả NULL). Điều này có một hàm ý trực tiếp trong các mảng.Nov 2, 2017 at 17:03

Có phải trống và không giống nhau trong PHP?

NULL và trống - Hướng dẫn PHP NULL là một thuật ngữ lạ mắt cho không có gì, vì không có giá trị. Nó không phải là không, nó không phải là một chuỗi trống, nó thực sự thiếu giá trị. Ý tôi là, nếu chúng ta có thể đặt một giá trị thành một biến, thì chúng ta cũng phải có một số cách để nói về thực tế rằng biến có thể không có giá trị nào cả.Null is a fancy term for nothing, for not having a value. It's not zero, it's not an empty string, it's the actual lack of a value. I mean, if we can set a value into a variable, then we also have to have some way to talk about the fact that variable might not have a value at all.

Sự khác biệt giữa null và trống là gì?

Một chuỗi trống là một thể hiện chuỗi có độ dài bằng không, trong khi một chuỗi null không có giá trị nào cả. Một chuỗi trống được biểu diễn là "". Đó là một chuỗi ký tự của các ký tự bằng không. Một chuỗi null được biểu diễn bởi null.. An empty string is represented as "" . It is a character sequence of zero characters. A null string is represented by null .

Sự khác biệt giữa NULL và NULL trong PHP là gì?

Nó là một toán tử so sánh giống hệt nhau và nó trả về true nếu giá trị của $ x bằng null.Null là một loại dữ liệu đặc biệt trong PHP chỉ có một giá trị là NULL.Một biến của loại dữ liệu null là một biến không có giá trị được gán cho nó.Null is a special data type in PHP which can have only one value that is NULL. A variable of data type NULL is a variable that has no value assigned to it.

Chuỗi trống NULL có phải là PHP không?

Trong PHP, chuỗi trống bằng với giá trị null, nhưng trong MySQL, trường hợp là một chuỗi trống khác nhau không bằng giá trị null., but in MySQL, the case is the different i.e. empty string is not equal to NULL value.