[PHP] เปรียบเทียบ isset() vs empty() vs is_null()
คนที่เขียน PHP มีกันมากมาย แต่มีใครสังเกตไหมว่าใน PHP มีฟังก์ชันที่ให้เช็คค่าตัวแปรนั้นที่ให้มา โดยที่เราเห็นกันบ่อยๆส่วนมากก็คือ isset แต่เดี๋ยวก่อนเจ้า isset ยังมีพี่น้องที่คล้ายมันอยู่อีกคือ empty() และ is_null() เราลองมาเปรียบเทียบฟังก์ชั่นชั่นทั้ง 3 นี้กัน
[PHP] เปรียบเทียบระหว่าง isset() กับ empty() และ is_null()
คนที่เขียน PHP มีกันมากมาย แต่มีใครสังเกตไหมว่าใน PHP มีฟังก์ชันที่ให้เช็คค่าตัวแปรนั้นที่ให้มา
ที่เห็นกันบ่อยๆก็คือ isset นั้นเอง แต่ก็มีบ้างคนที่ เห็นและเจอ รู้แค่ว่ามันเช็ค แต่พอเช็คตัวแปลแล้วจะได้เป็นอะไร
และ isset ยังมีพี่น้องที่ คล้ายๆกันอยู่อีก คือ empty() และ is_null()
ฟังก์ชันที่ให้เช็คค่าตัวแปรนั้นมี 3 แบบ คือ isset() , empty() ,is_null()
แต่สิ่งที่เหมือนกันคือทั่งสามตัวนี้จะส่งค่ากลับมาให้เราเป็น boolean มารู้จักกับ ฟังก์ชันพวกนี้กันดีกว่า
isset()
"isset — Determine if a variable is set and is not NULL "
คือเป็นการตัวสอบว่าในตัวแปรของเรานั้นมีค่าอยู่หรือไหม และไม่ใช่ null นั้นเองครับ หรือสรุปสั่นๆ มันจะส่งค่ากลับมาเป็น true ก็ต่อเมื่อตัวแปรของเราไม่ใช่ null หรือ ไม่ได้กำหนดค่าไว้
ผลที่แสดง
อ้างอิงจาก http://php.net
empty()
"empty — Determine whether a variable is empty"
ฟังก์ชันนี้จะทำหน้าที่ตัวสอบตัวแปรของเราว่าเป็นนค่าว่างหรือศูนย์หรือไมนั้นเองครับ ตัวอย่างข้อมูลที่ฟังก์ชันนี้จะส่งค่าเป็น true คือ
“” (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
“0” (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)
อ้างอิงจาก http://php.net
is_null()
"is_null — Finds whether a variable is NULL"
ฟังก์ชันนี้เป็นการตรวจสอบค่าว่าเป็น null หรือไม ซึ่งจะส่งค่าเป็น true ให้เรา
อ้างอิงจาก http://php.net
เพื่อให้เห็นกันชัดเจน มีตารางเปรียบเทียบแต่ละตัว ซึ่งเปรียบแทียบให้หมดแล้วตามนี้
ที่นี้เราก็สามารถเลือกใช้งาน ฟังก์ชั่นทั้ง 3 ตัวได้ถูกหลัก แล้วก็ถูกวิธีแล้วนะ เพราะบ้างครั้ง ฟังก์ชั่นบ้างอย่างมันไม่สามารถเช็คได้ถูกต้อง 100% แบบ ฟังก์ชั่นต้นฉบับนะ