ตัวแปรและค่าคงที่

หน่วยการเรียนรู้ที่ 2 เรื่อง การเขียนโปรแกรมพื้นฐาน

2. ตัวแปร (variable)

การเขียนโปรแกรมด้วยภาษาทุกภาษาจะมีรูปแบบการประกาศตัวแปรที่แตกต่างกัน PHP ก็เป็นภาษาหนึ่งที่มีลักษณะโดดเด่นกว่าภาษาอื่น คือ การประกาศตัวแปรของ PHP ไม่ต้องประกาศชนิดข้อมูล (Data type) เนื่องจากภาษา PHP จะกำหนดชนิดของข้อมูลตามค่าของข้อมูลที่ได้รับ

2.1 การตั้งชื่อตัวแปร

  • ชื่อของตัวแปรสามารถเป็นได้ทั้งตัวอักษร ตัวเลข และเครื่องหมาย Underscore ( _ ) ได้

  • ต้องขึ้นต้นด้วยตัวอักษร หรือเครื่องหมาย Underscore เท่านั้น ห้ามขึ้นต้นด้วยตัวเลข

  • ต้องมีเครื่องหมาย $ นำหน้าเสมอ ซึ่งการเรียกใช้ตัวแปรก็ต้องมีเครื่องหมาย $ นำหน้าด้วย

  • ชื่อของตัวแปรใน PHP จะให้ความสำคัญกับตัวอักษรพิมพ์เล็ก-พิมพ์ใหญ่ (Case Sensitive)

<?php

$price = 15000;

$product = "คอมพิวเตอร์";

echo "$product ราคา $price บาท ";

?>

จากตัวอย่าง เป็นการกำหนดตัวแปร $price ขึ้นมาโดยกำหนดค่าให้ คือ 15000 และ ตัวแปร $product ให้มีค่าเป็นข้อความว่า "คอมพิวเตอร์" ในการกำหนดค่าตัวแปรจะกำหนดหลังเครื่องหมาย Assignment Operator (=) ซึ่งสามารถเป็นได้ทั้งตัวเลข ตัวอักษร และตัวแปร จากนั้นจึงแสดงผลโดยใช้คำสั่ง echo

<?php

$PRICE = 18000;

$price = 15000;

echo"ลดราคาคอมพิวเตอร์พิเศษ \n";

echo"จากปกติ $PRICE บาท \n เหลือ $price บาท";

?>

ภาษา PHP จะมีลักษณะของ Case Sensitive เช่น $price จะเป็นคนละตัวกับ $PRICE และ $Price เป็นต้น

2.2 ชนิดข้อมูล

Integer : ตัวแปรแบบเลขจำนวนเต็ม เช่น 1, 2, -8, 117

Floating : ตัวเลขซึ่งเป็นจำนวนทศนิยม เช่น 0.001, 8.5, -3.005

String : ตัวแปรอักขระ ตัวอักษร หรือข้อความ โดยต้องอยู่ภายใต้เครื่องหมาย Double Quote (" ") เช่น "MWIT"

Array : เก็บค่าตั้งแต่ 1 ค่าขึ้นไปไว้ในชื่อตัวแปรเดียวกัน โดยมี index เป็นตัวระบุตำแหน่งของแต่ละข้อมูล

Object : กำหนดให้ตัวแปรนั้นเก็บคุณสมบัติของ Object ไว้ โดยใช้ชื่อ Class เป็นตัวกำหนด ชนิดข้อมูลประเภทนี้

2.3 การแปลงชนิดข้อมูล

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

2.3.1 การแปลงชนิดข้อมูลด้วยวิธี Cast

<?php

$num = 248.75;

echo"ค่าตัวแปรก่อนการแปลงชนิดข้อมูล : $num \n";

$num = (int) $num;

echo"ค่าตัวแปรหลังการแปลงชนิดข้อมูล : $num \n";

?>

การแปลงชนิดข้อมูลด้วยวิธี Cast เป็นการระบุชนิดข้อมูลที่ต้องการไว้หน้าตัวแปร โดย

(int), (integer) : ใช้แปลงเป็นข้อมูลชนิดจำนวนเต็ม

(real), (double), (float) : ใช้แปลงเป็นข้อมูลชนิดจำนวนทศนิยม

(string) : ใช้แปลงเป็นข้อมูลชนิดสตริง

(array) : ใช้แปลงเป็นข้อมูลชนิดอาร์เรย์

(object) : ใช้แปลงเป็นข้อมูลชนิดออบเจ็ค


2.3.2 การแปลงชนิดข้อมูลด้วยฟังก์ชั่น settype

<?php

$num = 248.75;

echo"ค่าตัวแปรก่อนการแปลงชนิดข้อมูล : $num \n";

settype($num, "integer");

echo"ค่าตัวแปรหลังการแปลงชนิดข้อมูล : $num \n";

?>

ฟังก์ชั่น settype() เป็นฟังก์ชั่นที่ใช้แปลงชนิดข้อมูล ซึ่งมีรูปแบบการใช้งานดังนี้

  • settype(ตัวแปร, ชนิดข้อมูล)

การระบุชนิดข้อมูลในฟังก์ชั่น settype() นั้นจะต้องอยู่ในรูปของสตริง โดยใส่เครื่องหมาย double quote ครอบชื่อชนิดข้อมูลที่ต้องการ เช่น "integer" เป็นต้น

2.4 ค่าคงที่

ค่าคงที่ คือ ตัวแปรประเภทหนึ่ง ซึ่งทั้งโปรแกรมค่าคงที่จะมีได้เพียงแค่ค่าเดี่ยว การประกาศค่าคงที่ใน PHP ทำได้โดยใช้คำสั่ง define ซึ่งมีรูปแบบดังนี้


<?php

define("MYNAME", "Anupong");

define("MYAGE", 18);

echo "My name is ", MYNAME, "\n";

echo "I am ", MYAGE , " years old";

?>

จากข้างต้นจะเห็นว่า มีการประกาศค่าคงที่ 2 ตัว และค่าคงที่ทั้ง 2 ค่านี้เวลานำไปใช้ เราจะแทรกอยู่ภายนอกเครื่องหมาย "..." (Double quote)


2.5 การกำหนดค่าคงที่

ค่าคงที่ใช้เก็บค่า เช่น ตัวแปร แต่เมื่อตั้งค่าแล้วจะไม่สามารถเปลี่ยนแปลงได้ การกำหนดใช้ฟังก์ชัน define

define ("MYAGE", 18);

define ("SCHOOLNAME","TAWEETHAPISEK SCHOOL");

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

ความแตกต่างสำคัญประการหนึ่ง ระหว่างค่าคงที่กับตัวแปรคือ เมื่ออ้างอิงค่าคงที่ไม่ต้องใช้เครื่องหมายดอลลาร์นำหน้า ถ้าต้องการใช้ค่าคงที่ ให้ใช้เฉพาะชื่อ ตัวอย่าง

echo SCHOOLNAME;

2.6 ประเภทข้อมูลและค่าพิเศษ

ประเภทข้อมูลและค่าพิเศษไม่สามารถจัดเข้าสู่กลุ่มประเภทข้อมูลจึงต้องแยกอธิบายต่างหาก

NULL เป็นประเภทข้อมูลและค่าพิเศษใน PHP ที่ระบุ ไม่มีค่า หรือ ค่าว่าง ตัวแปรเป็น NULL ได้

  1. ตั้งด้วยคีย์เวิร์ด NULL

  2. ไม่เคยได้รับการกำหนดค่า

NULL แตกต่างจากค่าจำนวนเต็ม 0 หรือข้อความว่าง '' เพราะสองค่านี้ได้รับการตั้งค่า การทดสอบค่า NULL เรียกฟังก์ชัน is_null


<?php

$myvalue = Null ; // NULL เป็นค่าชนิดตัวพิมพ์มีผล

echo is_null($myvalue); // มีค่าเป็น 1

?>

2.7 ทดสอบสถานะตัวแปร

PHP มีฟังก์ชันทดสอบสถานะของตัวแปรหลายฟังก์ชัน

isset () ใช้ชื่อตัวแปรเป็น อากิวเมนต์ และ ส่งออก TRUE ถ้าตัวแปรมีอยู่ กรณีอื่นเป็น FALSE

unset () ใช้กำจัดตัวแปร และส่งค่าออกเป็น TRUE

empty() ใช้ตรวจสอบว่าตัวแปรมีอยู่และเป็นค่าว่างหรือเป็นศูนย์ ส่งออกค่าเป็น TRUE หรือ FALSE ตามกรณี

is_null() ใช้ตรวจสอบค่าว่าเป็น null หรือไม ซึ่งจะส่งค่าเป็น true


2.8 ตัวแปร Predefined

PHP มาพร้อมกับตัวแปร predefined จำนวนหนึ่งที่ให้สารสนเทศเกี่ยวกับสภาพแวดล้อมการทำงานปัจจุบัน ส่วนใหญ่เป็น global array ด้วยชื่อ คีย์อ้างอิงถึงสารสนเทศเฉพาะที่ค้นหาได้

  1. $GLOBAL สิ่งนี้เก็บการอ้างอิงถึงตัวแปร global ทั้งหมดภายในสคริปต์ คีย์ของ array นี้เป็นชื่อของตัวแปร

  2. $_SERVER สิ่งนี้เก็บสารสนเทศเกี่ยวกับบริบทในการประมวลผลสคริปต์ เช่น ชื่อแม่ข่าย ชื่อเพจที่กำลังเรียกใช้ สารสนเทศเกี่ยวกับการเชื่อมต่อ และอื่นๆ

  3. $_GET, $_POST สิ่งนี้เก็บตัวแปรที่เพจส่งให้แม่ข่ายเป็นส่วนของฟอร์ม HTML

  4. $_SESSION, $_COOKIE สิ่งนี้เก็บสารสนเทศการจัดการผู้เยี่ยมชม และสิ่งอำนวยความสะดวกจัดเก็บเป็น “cookie”

  5. $_REQUEST สิ่งนี้เก็บเนื้อหาของ $_GET, $_POST และ $_SESSION

  6. $_ENV สิ่งนี้เก็บตัวแปร environment สำหรับกระบวนการสำหรับ PHP engine ที่กำลังประมวลผล คีย์ของ array เป็นชื่อของตัวแปร environment

  7. $php_errormsg สิ่งนี้เก็บข่าวสารความผิดพลาดครั้งสุดท้ายที่สร้างโดย PHP engine ขณะที่กำลังประมวลสคริปต์ปัจจุบัน มีให้เฉพาะภายใน scope ของคำสั่งที่เกิดความผิดพลาด และถ้าตัวเลือกคอนฟิก track_errors ใน php.ini เป็น on