ตัวแปร และประเภทข้อมูล (Variables And Data types)

ตัวแปรใช้สำหรับค่าข้อมูล และแทนค่าข้อมูล หรืออาจมองเป็นภาชนะสำหรับบรรจุข้อมูล

การสร้างและประกาศตัวแปร 

ในการประกาศตัวแปรของ PHP จะขึ้นต้นด้วยสัญลักษณ์ “$” แล้วตามด้วยชื่อตัวแปรอาจมีความหมาย หรือไม่มีก็ได้ แนะนำว่าควรประกาศชื่อตัวแปรที่สามารถสื่อความหมายได้ดี ตัวอย่างเช่น $name , $lastname ซึ่งทั้งสองตัวแปรสามารถคาดเดาได้ว่าน่าจะสร้างไว้เพื่อจัดเก็บข้อมูล ชื่อ , นามสกุล เป็นต้น

ขอบเขตของตัวแปร

ขอบเขตของการใช้งานตัวแปรแบ่งออกเป็น 3 ระดับด้วยกันดังนี้

  • local
  • global
  • static

1.local คือสามารถทำงานได้ภายในฟังก์ชั่นที่กำหนดเท่านั้น ดังไฟล์ที่ 1 test_local.php

<?php

function nameFunction(){
$name = "PHP NAME";
echo $name; 
}

nameFunction(); /* ผลลัพธ์ PP NAME */ echo $name; /* ไม่แสดงผลลัพธ์ */ ?>


ไฟล์ที่ 1 test_local.php

2.global ซึ่งสามารถเข้าถึงได้จากภายนอกฟังก์ชั่น และภายในฟังก์ชั่น ตัวอย่างเช่น

<?php
$x = 5;
$y = 10;
$z = 0;

function myTest() {
  global $x, $y , $z;
  $z = $x + $y;
} 

myTest();  //เรียกใช้งานฟังก์ชั่น

echo $z; // ผลลัพธ์เท่ากับ 15
?>

ไฟล์ที่ 2 text_global.php

3.static เป็นตัวแปรที่ข้อมูลมีความคงทนถาวร คือไม่มีการคืนค่าทรัพยากรให้กับระบบ ซึ่งโดยปกติเมื่อโปรแกรมทำงานจบลงแล้วจะทำการเคลียร์ค่าของตัวแปรให้เป็น null ทันที แต่ ตัวแปร static จะไม่มีการเคลียร์ค่าให้เป็น null และเก็บไว้ใช้งานต่อไป ตัวอย่างเช่น

<?php
function myTest() {
  static $x = 0;
  echo $x;
  $x++;
}

myTest();
myTest();
myTest();
?>

ไฟล์ที่ 3 test_static.php

จากไฟล์ที่ 3 มีการเรียกใช้งานฟังก์ที่เก็บค่าตัวแปรถาวรที่ชื่อว่าตัวแปร $x ที่กำหนดค่าเริ่มต้นไว้ที่ 0 และเพิ่มทีละ 1 ตามการเรียกใช้งานฟังก์ชั่น ซึ่งผลลัพธ์คือ 0, 1 และ 2 ตามลำดับ 

แต่ถ้าหากไม่มีการกำหนดตัวแปร static ผลลัพธ์ที่ได้จะเปลี่ยนไปดังไฟล์ที่ 4 test.php

<?php 
function myTest(){
$x = 0;
echo $x;
$x++;
}

myTest();
myTest();
myTest();
?>

ไฟล์ที่ 4 test.php

จากไฟล์ที่ 4 ผลลัพธ์ที่ได้จะเป็น 0,0 และ 0 

 

ตัวแปรสามารถจัดเก็บข้อมูลได้หลายประเภท ซึ่ง PHP มีการรองรับประเภทข้อมูลดังนี้

  1. String (ข้อความ)
  2. Integer (ตัวเลข จำนวนเต็ม)
  3. Float (ตัวเลขที่มีจุดทศนิยม)
  4. Boolean (จริง กับ เท็จ)
  5. Array (ข้อมูลหลายค่า ในตัวแปรเดียว เปรียบเหมือนกล่องสินค้า ในตู้คอนเทนเนอร์)
  6. Object
  7. NULL
  8. Resource

 

1.String

String เป็นข้อมูลประเภทของอักขระ อักษร หรือข้อความ ตัวอย่างเช่น “A”, “ABC” หรือ “A+>-BC” เป็นต้น โดยข้อมูลประเภท String จะอยู่ภายใน “…”

ตัวอย่างโค้ด

<?php
$text = "Hello World";

echo $text;
?>

ไฟล์ที่ 1 ้String

เพิ่มเติม : ฟังก์ชั่นที่เกี่ยวข้องกับ String

2.Integer 

Integer เป็นข้อมูลประเภทตัวเลขจำนวนเต็ม ตั้งแต่ – ไปหา + 

ตัวอย่างเช่น … ,-5,-4,-3,-2,-1,0,1,2,3,4,5, …

ซึ่งลักษณะของจำนวนเต็ม คือ 

  • จำนวนเต้มต้องมีตัวเลขตั้งแต่ 1 หลักขึ้นไป
  • จำนวนเต็มไม่มีจุดทศนิยม
  • จำนวนเต็มสามารถเป็นบวก หรือลบก็ได้

 

ตัวอย่างโค้ด

<?php 
$number = 456;

echo $number;
echo var_dump($number);
?>

ไฟล์ที่ 2 Integer

จากไฟล์ที่ 2 ได้มีการกำหนดตัวแปร $number เพื่อเก็บข้อมูลของจำนวนเต็ม โดยในโค้ดบรรทัดที่ 4 แสดงผลข้อมูลปกติเป็น 456 ส่วนในโค้ดบรรที่ 5 เป็นการแสดงผลข้อมูลร่วมกับการใช้งานฟังก์ชั่น var_dump ซึ่งสามารถแสดงผลรับของประเภทข้อมูลออกมาด้วย จากโค้ดบรรทัดที่ 5 ผลลัพธ์คือ int(456)

 

3.Float

Float เป็นข้อมูลประเภททศนิยม ตัวอย่างเช่น 20.457 หรือ 4020.88 เป็นต้น  

ตัวอย่างโค้ด

<?php 
$number = 456.789; 
echo $number; 
echo var_dump($number); 
?>

ไฟล์ที่ 3 Float

จากไฟล์ที่ 3 ได้มีการกำหนดตัวแปร $number เพื่อเก็บข้อมูลตัวเลขทศนิยม โดยในโค้ดบรรทัดที่ 3 แสดงผลข้อมูลปกติเป็น 456.789 ส่วนในโค้ดบรรที่ 4 เป็นการแสดงผลข้อมูลร่วมกับการใช้งานฟังก์ชั่น var_dump ซึ่งสามารถแสดงผลรับของประเภทข้อมูลออกมาด้วย จากโค้ดบรรทัดที่ 4 ผลลัพธ์คือ float(456.789)

เพิ่มเติม : รายละเอียดเชิงลึกเกี่ยวกับ number และฟังก์ชั่นที่เกี่ยวข้อง

4.Boolean 

Boolean เป็นข้อมูลที่มีค่าเพียง 2 อย่าง คือ จริง หรือ เท็จเท่านั้น เหมาะกับนำไปใช้ในเรื่องของการเช็ค หรือตรวจสอบ

ตัวอย่างโค้ด

<?php 
$isX = true;
$isY = false; 
?>

ไฟล์ที่ 4 boolean

5.Array

จุดเด่นของ Array คือ สามารถเก็บข้อมูลหลายค่าไว้ในตัวแปรเดียว ซึ่งเปรียบเสมือนกล่องบรรจุผลไม้หลากชนิด ที่ถูกเก็บไว้ในตู้คอนเทนเนอร์ ซึ่ง “กล่องสามารถบรรจุผลไม้ได้หลายชนิด และตู้คอนเทนเนอร์ก็บรรจุกล่องหลายกล่องไว้อีกที” จากข้อความข้างต้นสามารถนำมาอธิบายในรูปแบบของโค้ดดังต่อไปนี้

<?php
$container = array("Banana","Apple","Melon","Orange");
var_dump($container);
?>

ไฟล์ที่ 5 array-1

จากไฟล์ที่ 5 มีการใช้งานฟังก์ชั่น var_dump ร่วมกับการแสดงผลจึงได้ผลลัพธ์ที่มีการคืนค่าประเภทข้อมูลมาด้วย 

ตัวอย่างการเรียกใช้งานข้อมูลอาเรย์พื้นฐาน

<?php
$container = array("Banana","Apple","Melon","Orange");

echo $container[0]."<br>";
echo $container[2];
?>

ไฟล์ที่ 6 array-2

จากไฟล์ที่ 6 เป็นการแสดงผลข้อมูลประเภทอาเรย์โดยการเรียกชื่อตัวแปร และระบุอินเด็กซ์ข้อมูล (ตำแหน่งข้อมูล โดยในข้อมูลประเภทอาเรย์จะเริ่มตั้งแต่ตำแหน่งที่ 0 เป็นต้นไป เรียกว่า อินเด็กซ์ที่ 0 เป็นต้น) ดังนั้นผลลัพธ์ที่ได้คือ Banana , Melon 

 

6.Object

Object คือตัวแปรที่เก็บข้อมูลที่เกี่ยวข้องกับการประมวลผลข้อมูลนั้นๆ โดยจะต้องมีการประกาศตัวแปรวัตถุไว้อย่างชัดเจน 

ซึ่งก่อนอื่นต้องมีการสร้างคลาส  โดยชื่อคลาสจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ ส่วนภายในคลาสสามารถกำหนดคุณสมบัติ (Properties) และวิธีการ (Method)

ดังตัวอย่างต่อไปนี้

<?php
class Fruit{
  // Properties
  public $name;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>

ไฟล์ที่ 7 Object

จากไฟล์ที่ 7 เป็นการสร้างคลาสผลไม้ ซึ่งภายในคลาสเองมีคุณสมบัติอย่างหนึ่งคือ ชื่อ และมี method/function 2 อย่าง ประกอบด้วย 1 แทนค่าข้อมูล และ 2 รับข้อมูล

 

7.Null

Null เป็นข้อมูลพิเศษ โดยจะมีได้เพียงข้อมูลเดียวคือ null ซึ่งหมายถึงไม่มีการกำหนดค่า (ว่าเปล่า) 

ดังตัวอย่างต่อไปนี้ 

<?php
$a = "";
$b = null;
?>

ไฟล์ที่ 8 null

จากไฟล์ที่ 8 ตัวแปร $a , $b ในบรรทัดที่ 3 ,4 มีความหมายเหมือนกัน ซึ่งหมายถึง null สามารถกำหนดได้ทั้ง 2 รูปแบบ