2012-03-18 40 views
26

Trước khi làm điều gì đó với $ lỗi:biến Rỗng xác định trong php

$error = NULL; 

Trong cưa của một số kịch bản:

$error = ''; 
$error = false; 
$error = 0; 
  • Những phương pháp là 'tốt hơn' hoặc có thể nó phụ thuộc trong đó tình huống tôi sử dụng nó?
  • Đề xuất của bạn là gì?
+1

Vâng, nó phụ thuộc vào những gì bạn đang sử dụng nó cho. –

Trả lời

34

Phụ thuộc vào thiết kế của bạn:

  • Bạn đang thiết lập nó như là một đối tượng trong trường hợp lỗi? Sử dụng NULL.
  • Bạn có đặt số điện thoại đó là true trong trường hợp có lỗi không? Sử dụng false.
  • Bạn có đặt số đó làm một số loại trong trường hợp có lỗi không? Sử dụng 0.
  • Bạn có đặt nó thành chuỗi để mô tả lỗi không? Sử dụng ''.

Tuy nhiên, cách tốt hơn để chỉ ra lỗi sẽ là throwing Exceptions thay vì đặt biến và xác định lỗi theo biến đó.

+1

+1 cho các trường hợp ngoại lệ được đề cập! – Neysor

+0

Còn về mảng? – Kwadz

+1

@Kwadz Một mảng trống, thường là. –

3

Không có câu trả lời chính xác cho câu hỏi này. Miễn là bạn sử dụng một trong những semaphores nhất quán, bạn có thể sử dụng bất cứ điều gì bạn muốn. Vì PHP được nhập sai, tất cả các giá trị này là "sai" và có thể được đánh giá bằng so sánh boolean là FALSE.

Điều đó nói rằng, có nhiều sự khác biệt giữa chuỗi rỗng và các chuỗi khác, vì vậy tôi muốn gắn bó với NULL s và FALSE trong trường hợp này.

1

Tùy thuộc vào điều kiện bạn cần sử dụng $error. Sử dụng một NULL là những gì tôi đã chọn chủ yếu là khi tôi đối phó nhiều hơn với các mệnh đề MySQL và tất cả!

1

1.

$v = NULL; 

settype($v, 'string'); 
settype($v, 'int'); 
settype($v, 'float'); 
settype($v, 'bool'); 
settype($v, 'array'); 

var_dump($v); 

2.

$v = NULL; 
var_dump((string) $v); 
var_dump((int) $v); 
var_dump((float) $v); 
var_dump((bool) $v); 
var_dump((array) $v); 
Các vấn đề liên quan