Trong một bit mã tôi đang làm việc trên, tôi cần phải kéo một giá trị từ cơ sở dữ liệu và kiểm tra xem nó là 0
. Ban đầu, tôi đã viết điều này như:Cách tốt nhất để so sánh với 0 trong PHP?
if ($myVal == 0) { ...
Nhưng khi tôi nhìn vào nó một lần nữa ngày hôm nay, tôi nhận ra một lỗi có:
var_dump("foo" == 0); // bool(true)
// and while we're here...
var_dump(intval("foo")); // int(0)
Kể từ khi giá trị này được phát ra từ cơ sở dữ liệu, mà thường có nghĩa là nó sẽ là một chuỗi, vì vậy tôi cho rằng tôi có thể làm điều này:
if ($myVal === "0")
nhưng có vẻ phản trực giác vì tôi thực sự muốn xử lý một số nguyên và thứ sẽ xuất hiện để cho thấy rằng chúng tôi đang làm việc với các chuỗi. (Tôi hy vọng điều đó có ý nghĩa đối với bạn.) Ngoài ra, không được bất ngờ khi bất kỳ trình truy cập DB nào cho phép đưa các giá trị vào loại thích hợp của chúng, với kiểu trường.
Bạn sử dụng phương pháp nào để kiểm tra giá trị 0 khi nó có thể là chuỗi hoặc int?
+1 Có vẻ rất cơ bản nhưng lại là một câu hỏi thú vị đáng ngạc nhiên đối với việc tung hứng kiểu PHP. – cletus