ตัวแปรและค่าคงที่
หน่วยการเรียนรู้ที่ 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 ได้
ตั้งด้วยคีย์เวิร์ด NULL
ไม่เคยได้รับการกำหนดค่า
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 ด้วยชื่อ คีย์อ้างอิงถึงสารสนเทศเฉพาะที่ค้นหาได้
$GLOBAL สิ่งนี้เก็บการอ้างอิงถึงตัวแปร global ทั้งหมดภายในสคริปต์ คีย์ของ array นี้เป็นชื่อของตัวแปร
$_SERVER สิ่งนี้เก็บสารสนเทศเกี่ยวกับบริบทในการประมวลผลสคริปต์ เช่น ชื่อแม่ข่าย ชื่อเพจที่กำลังเรียกใช้ สารสนเทศเกี่ยวกับการเชื่อมต่อ และอื่นๆ
$_GET, $_POST สิ่งนี้เก็บตัวแปรที่เพจส่งให้แม่ข่ายเป็นส่วนของฟอร์ม HTML
$_SESSION, $_COOKIE สิ่งนี้เก็บสารสนเทศการจัดการผู้เยี่ยมชม และสิ่งอำนวยความสะดวกจัดเก็บเป็น “cookie”
$_REQUEST สิ่งนี้เก็บเนื้อหาของ $_GET, $_POST และ $_SESSION
$_ENV สิ่งนี้เก็บตัวแปร environment สำหรับกระบวนการสำหรับ PHP engine ที่กำลังประมวลผล คีย์ของ array เป็นชื่อของตัวแปร environment
$php_errormsg สิ่งนี้เก็บข่าวสารความผิดพลาดครั้งสุดท้ายที่สร้างโดย PHP engine ขณะที่กำลังประมวลสคริปต์ปัจจุบัน มีให้เฉพาะภายใน scope ของคำสั่งที่เกิดความผิดพลาด และถ้าตัวเลือกคอนฟิก track_errors ใน php.ini เป็น on