1. isset() คืออะไร?
isset() ใช้สำหรับตรวจสอบว่าตัวแปรนั้น ถูกกำหนดค่าแล้วหรือไม่ และ ไม่ได้เป็นค่า NULL ถ้าตัวแปรนั้นถูกกำหนดค่าแล้ว (ไม่ว่าจะเป็นค่าที่ว่างเปล่าแต่ไม่ใช่ NULL) มันจะคืนค่า true แต่ถ้าตัวแปรนั้นไม่มีอยู่หรือมีค่าเป็น NULL จะคืนค่า falseตัวอย่างการใช้งาน isset()
$var1 = "Hello, PHP!";$var2 = NULL;
var_dump(isset($var1)); // true
var_dump(isset($var2)); // false
var_dump(isset($var3)); // false เพราะ $var3 ไม่มีการประกาศ
2. empty() คืออะไร?
empty() ใช้เพื่อตรวจสอบว่าตัวแปร เป็นค่าที่ถือว่า "ว่างเปล่า" หรือไม่ หมายถึง ค่าเป็น NULL, 0, "" (สตริงว่าง), false, array() (อาร์เรย์ว่าง), หรือไม่มีการกำหนดค่ามาก่อน ถ้าตัวแปรอยู่ในสถานะ "ว่างเปล่า" มันจะคืนค่า true ถ้าไม่ว่างเปล่าจะคืนค่า falseตัวอย่างการใช้งาน empty()
$var1 = ""; // สตริงว่าง$var2 = 0; // ศูนย์
$var3 = NULL;
$var4 = [];
$var5 = "Hello";
var_dump(empty($var1)); // true
var_dump(empty($var2)); // true
var_dump(empty($var3)); // true
var_dump(empty($var4)); // true
var_dump(empty($var5)); // false เพราะมันมีค่าจริงๆ
3. เปรียบเทียบ isset() และ empty()
สถานะของตัวแปร | isset($var) | empty($var) |
---|---|---|
ไม่ได้กำหนดค่า | false | true |
NULL | false | true |
false | true | true |
0 | true | true |
"" (สตริงว่าง) | true | true |
"PHP" (สตริงที่มีค่า) | true | false |
[] (อาร์เรย์ว่าง) | true | true |
4. แล้วเราควรใช้ตัวไหน?
- ถ้าต้องการ เช็กว่าตัวแปรถูกกำหนดค่าหรือไม่ ให้ใช้ isset()
- ถ้าต้องการ เช็กว่าตัวแปรมีค่าที่ "ว่างเปล่า" หรือไม่ ให้ใช้ empty()
ตัวอย่างการใช้งานในชีวิตจริง
ใช้ isset() ตรวจสอบว่ามีค่าหรือไม่ก่อนใช้งาน
if (isset($_POST['username'])) {
echo "Username: " . $_POST['username'];
} else {
echo "กรุณากรอกชื่อผู้ใช้";
}
ใช้ empty() ตรวจสอบว่าค่าว่างหรือไม่
if (empty($_POST['password'])) {
echo "กรุณากรอกรหัสผ่าน";
} else {
echo "รหัสผ่านของคุณถูกบันทึกแล้ว";
}
5. ใช้ isset() และ empty() ร่วมกัน
บางกรณีเราอาจใช้ทั้งสองฟังก์ชันร่วมกัน เช่น
if (isset($_POST['email']) && !empty($_POST['email'])) {
echo "อีเมลของคุณคือ " . $_POST['email'];
} else {
echo "กรุณากรอกอีเมล";
}
ในกรณีนี้ isset() จะช่วยให้แน่ใจว่าตัวแปรถูกกำหนดแล้ว และ empty() จะช่วยให้แน่ใจว่ามันไม่ใช่ค่าที่ว่างเปล่า
6. ข้อควรระวังในการใช้ isset() และ empty()
- isset() ไม่สามารถตรวจสอบได้ว่าค่าตัวแปรว่างเปล่าหรือไม่
- empty() สามารถเช็กตัวแปรที่ไม่ได้ประกาศได้เลยโดยไม่เกิด Error
- ระวังเรื่องค่าของตัวเลข 0 เพราะ empty(0) จะคืนค่า true
ตัวอย่างที่ต้องระวัง:
$var = 0;
if (empty($var)) {
echo "ตัวแปรนี้ว่าง";
} else {
echo "ตัวแปรนี้มีค่า";
}
// ผลลัพธ์: ตัวแปรนี้ว่าง (เพราะ empty(0) ให้ค่าเป็น true)
7. สรุปแบบเข้าใจง่าย
- isset($var): เช็กว่าตัวแปรถูกกำหนดค่าแล้ว และไม่ใช่ NULL
- empty($var): เช็กว่าตัวแปร "ไม่มีค่า" หรือเป็นค่าที่ถือว่าว่างเปล่า
- isset() คืนค่า false เมื่อตัวแปรเป็น NULL หรือไม่มีอยู่
- empty() คืนค่า true เมื่อค่าของตัวแปรเป็น 0, "", false, NULL, array(), หรือไม่มีอยู่เลย
- ควรใช้ isset() เช็กว่าตัวแปรมีอยู่หรือไม่ และ empty() เช็กว่าตัวแปรมีค่าหรือเปล่า
ไม่มีความคิดเห็น:
แสดงความคิดเห็น