2009-12-08 29 views

Trả lời

9
if (isset($data)) { 

Biến chỉ được thiết lập - trước khi dòng mà chúng ta tuyên bố biến mới với tên 'dữ liệu', ví dụ: $ data = 'abc';

if (!empty($data)) { 

Biến được điền dữ liệu. Nó không thể có mảng trống vì sau đó $data có loại mảng nhưng vẫn không có dữ liệu, ví dụ: $ data = array (1); Không thể được null, chuỗi rỗng, mảng trống rỗng, đối tượng rỗng, 0 vv

if ($data != '') { 

Variable không phải là một chuỗi rỗng. Nhưng cũng không được để trống giá trị (ví dụ trên).
Nếu chúng tôi muốn so sánh các loại, hãy sử dụng !== hoặc ===.

if ($data) { 

Biến được điền bằng bất kỳ dữ liệu nào. Tương tự như !empty($data).

+1

[Hướng dẫn] (http://php.net/manual/en/function.empty.php) đặt như sau: 'empty()' là đối diện của '(boolean) var', ** ngoại trừ không có cảnh báo nào được tạo khi biến không được đặt. ** Xem thêm [câu trả lời này] (http://stackoverflow.com/a/4559976/758990). –

21

Kiểm tra PHP tay ra: http://www.php.net/manual/en/types.comparisons.php

 
Expression gettype() empty() is_null() isset() if($x) 
$x = "";  string TRUE FALSE TRUE FALSE 
$x = null;  NULL TRUE TRUE FALSE FALSE 
var $x;   NULL TRUE TRUE FALSE FALSE 
$x undefined NULL TRUE TRUE FALSE FALSE 
$x = array(); array TRUE FALSE TRUE FALSE 
$x = false;  boolean TRUE FALSE TRUE FALSE 
$x = true;  boolean FALSE FALSE TRUE TRUE 
$x = 1;   integer FALSE FALSE TRUE TRUE 
$x = 42;  integer FALSE FALSE TRUE TRUE 
$x = 0;   integer TRUE FALSE TRUE FALSE 
$x = -1;  integer FALSE FALSE TRUE TRUE 
$x = "1";  string FALSE FALSE TRUE TRUE 
$x = "0";  string TRUE FALSE TRUE FALSE 
$x = "-1";  string FALSE FALSE TRUE TRUE 
$x = "php";  string FALSE FALSE TRUE TRUE 
$x = "true"; string FALSE FALSE TRUE TRUE 
$x = "false"; string FALSE FALSE TRUE TRUE 

Như bạn thấy, if(!empty($x)) bằng if($x)if(!is_null($x)) bằng if(isset($x)). Theo như nếu $data != '' xuất hiện, nó là TRUE nếu $data không phải là NULL, '', FALSE hoặc 0 (so sánh rộng).

4

Chúng không giống nhau.

  1. true nếu biến được đặt. biến có thể được đặt thành trống và điều này sẽ đúng.

  2. true nếu biến được đặt không bằng chuỗi rỗng, 0, '0', NULL, FALSE, mảng trống. nó rõ ràng không giống như isset.

  3. nếu biến không bằng một chuỗi trống, nếu biến không được đặt là chuỗi rỗng.

  4. nếu biến cố định thành true, nếu biến không được đặt, biến sẽ bị ép thành sai.

0

if (isset ($ data)) - Xác định nếu một biến được thiết lập (đã không đặt cược 'unset()' và không phải là NULL

if (empty ($ data)) -.! Là một loại séc thuyết bất khả tri cho trống nếu $ data là '', 0, false hoặc NULL, nó sẽ trả về giá trị true.

if ($ data!= '') {đây là loại chuỗi an toàn khi kiểm tra xem dữ liệu $ không bằng một chuỗi trống

nếu ($ data) {đây là tìm kiếm đúng hoặc sai (aka: 0 hoặc 1)

+2

'if ($ data) {đây là tìm kiếm đúng hay sai (aka: 0 hoặc 1)' <- không hoàn toàn chính xác. Điều này sẽ đúng nếu '$ data' chứa một cái gì đó không giải quyết thành false (về cơ bản là những thứ giống như'! Empty ($ data) ') –

Các vấn đề liên quan