check variable วิธีตรวจสอบชนิดของตัวแปรในภาษา PHP


check variable คือวิธีการตรวจสอบข้อมูล input หรือ output ของเราก่อนนำไปใช้งานว่าเป็นข้อมูลชนิดไหน ประเภทไหน เพื่อกำหนดและใช้งานตัวแปรนั้นๆได้อย่างถูกต้องและเหมาะสม

ภาพประกอบ : php-variables

ภาพประกอบ : php

check variable วิธีตรวจสอบชนิดของตัวแปรในภาษา PHP

โดยปรกติแล้วค่าตัวแปรในการเขียนโปรแกรมเป็นเรื่องทั่วๆไปที่เราจำเป็นต้องใช้งานกันตลอดเวลาอยูแล้วครับ แต่เราอาจจะมองข้ามหรือให้ความสำคัญกับข้อมูลแต่ละชนิดน้อยเกินไป… อันที่จริงแล้วตัวแปรต่างๆมีมากมาย ทุกตัวมีความสำคัญเหมือนกันหมด โดยเฉพาะอย่างยิ่งกับการนำไปใช้ในการแสดงผลหรือการคำนวณค่าครับ แล้วปรกติภาษา PHP นั้นมีตัวแปรที่เป็นประเภทต่างๆอยู่ทั้งหมดกี่แบบ กี่ประเภทกันบ้าง แล้วเราจะมีวิธีตรวจสอบตัวแปรเหล่านั้นง่ายๆได้อย่างไรกัน มาลองดูกันครับ

เริ่มจากประเภทของตัวแปรต่างๆกันก่อนนะครับ

  1. String ข้อมูลในรูปแบบของตัวอักษร ตัวเลข อักขระ ชุดข้อความต่างๆ เช่น “สวัสดีครับ ธีรภัทร”
  2. Integer ข้อมูลในลักษณะของตัวเลขจำนวนเต็ม ไม่มีจุดทศนิยมใดๆ เช่น 0-9 ไม่ต้องใส่ comma หรือเว้นช่องว่างใดๆ
  3. Float ข้อมูลในลักษณะของตัวเลขแบบมีจุดทศนิยมครับ จะมากี่จุดก็ระบุลงไปได้ เช่น 12.025
  4. Boolean ข้อมูลแบบนี้จะส่งค่ากลับมาให้เราแค่เป็น true หรือ false เท่านั้นครับ เช่น $x = 5; $x มีค่าเป็น Integer หรือไม่ก็จะได้คำตอบเป็น true
  5. Array ข้อมูลนี้จะเก็บชุดข้อมูลซึ่งเป็นได้ทั้งแบบ string แบบ integer หรือแม้แต่แบบอื่นๆก็ได้ครับ เช่น array(“teerapuch”,”php”)
  6. Object ข้อมูลนี้เป็นการเก็บข้อมูลทั้งชุดของการทำงานหรือ infomation ใดๆก็ตามเช่น รถมี 4 ล้อ มี 4 ประตู มีสีดำ พวงมาลัยซ้าย 3 ประตู
  7. NULL ข้อมูลชนิดนี้เป็นข้อมูลที่ไม่มีค่าใดๆเป็นความว่างเปล่าของตัวแปรนั้นๆ empty สุดๆ เช่น ” “

ทีนี้เวลาเราจะเก็บข้อมูลเข้าไปใช้ใน function หรือส่งข้อมูลไปยังส่วนอื่นๆเราควรตรวจสอบข้อมูลให้ดีเสียก่อนว่าข้อมูลของเราถูกต้องหรือไม่ วิธีการตรวจสอบที่ผมจะแนะนำเป็นวิธีการใช้ function พื้นฐานของ php อย่าง is_ เข้ามาใช้ในการตรวจสอบซึ่งเราสามารถใช้งานร่วมกันกับ if…else ก็ได้หรือวิธีอื่นๆก็ได้

1.ตรวจสอบค่า integer

เราจะใช้ is_int(value) ซึ่ง function นี้จะ returns true กลับมาให้เราหากว่า value ข้างในเป็น integer ที่ถูกต้องตามรูปแบบนะครับ

[php]
<?php
$value = 10;
if(is_int($value)){
echo "Value = ".$value;
} else {
echo "Not integer";
}
[/php]

2.ตรวจสอบค่า string

เราจะใช้ is_string( value ) ซึ่ง function นี้จะ returns true กลับมาให้เราหากว่า value ข้างในมาในรูปแบบของ string

[php]
$value = "Hello teerapuch";
if(is_string($value)){
echo "Value = ".$value;
} else {
echo "Not string";
}
[/php]

แต่การใช้งาน function นี้ในภาษา PHP จะมีเรื่องต้องระวังก็คือการที่เราประกาศตัวแปรค่าตัวเลขแบบใส่มี “” ครอบเอาไว้มันจะกลายเป็นค่า string นะครับแม้ว่าจะเป็นเลขจำนวนเต็มก็ตาม

3.ตรวจสอบค่า float

เราจะใช้ is_float( value ) ซึ่ง function นี้ก็จะ returns true กลับมาให้เราหากว่า value ข้างในมาในรูปแบบของเลขทศนิยมด้วยเหมือนกัน

[php]
$value = 12.258;
if(is_float($value)){
echo "Value = ".$value;
} else {
echo "Not float";
}
[/php]

การใช้ is_float จะให้ค่า true ก็ต่อเมื่อตัวแปรเก็บค่าที่มีเลขทศนิยมเท่านั้นนะครับคือ ถ้าค่าเป็นตัวเลขแต่ไม่มีจุดก็จะคืนผลออกมาเป็น false

4.ตรวจสอบค่า boolean

เราจะใช้งาน function is_bool( value ) ซึ่ง function นี้ก็จะ returns true หรือ false กลับมาให้เราหากว่า value ข้างในมาในรูปแบบที่เป็นถูกต้องหรือไม่

[php]
$value = false;
if(is_bool($value)){
echo "is boolean";
} else {
echo "Not boolean";
}
[/php]

5.ตรวจสอบค่า array

เราจะใช้ is_array(value) ในการตรวจสอบว่าข้อมูลชุดนี้เป็นข้อมูลแบบ array หรือไม่

[php]
$value = array("teerapuch","kassakul","php");
if(is_array($value)){
echo "is array";
} else {
echo "not array";
}
[/php]

6.ตรวจสอบค่า Object

Object เป็นข้อมูลที่มาเป็นชุดทั้งชุดหรืออาจจะเป็น array ซ้อนกันไปมาก็ได้เหมือนกันยังไงเราควรตรวจสอบก่อนส่งหรือรับค่าให้ดีครับ เราจะใช้ is_object(value) ในการตรวจสอบข้อมูล

[php]
function get_students($obj)
{
if (!is_object($obj)) {
return false;
}
return $obj->students;
}
$obj = new stdClass();
if(is_object($obj)){
echo "is object";
} else {
echo "not object";
}
[/php]

ทีนี้หากเราได้ข้อมูลมาในรูปแบบที่ไม่ถูกต้อง หรือเราจำเป็นต้องใช้งานข้อมูลที่ส่งมาในรูปแบบอื่นๆเราควรจะกลับไปแก้การรับค่าข้อมูลมาตั้งแต่ต้นทางให้ถูกต้อง แต่เราก็อาจจะใช้วิธีแก้แบบปลายทางอย่างการใช้ settype() เข้ามาช่วยก็พอได้ตามแบบนี้ครับ

[php]
$value = 12.258;
settype($value, "string");
if(is_string($value)){
echo "is string";
} else {
echo "not string";
}
[/php]

จากข้อมูลตัวอย่างนี้ค่าใน value เป็นค่าแบบ float ครับแต่ผมอาจจะจำเป็นต้องใช้ในลักษณะของ string เราก็สามารถกำหนดให้เป็น settype แบบ string ได้ด้วยเช่นเดียวกันซึ่ง settype ก็สามารถใช้กับ integer, float หรือ boolean ด้วยก็ได้

ข้อมูลอ้างอิงจาก : Variable handling Functions

 

ใส่ความเห็น