การเขียนโปรแกรมด้วยภาษาทุกภาษาจะมีรูปแบบการประกาศตัวแปรที่แตกต่างกัน PHP ก็เป็นภาษา หนึ่งที่มีลักษณะโดดเด่นกว่าภาษาอื่น คือ การประกาศตัวแปรของ PHP ไม่ต้องประกาศชนิดข้อมูล(Data Type ) เนื่องจากภาษาPHP จะกำหนดชนิดของข้อมูลตามค่าของข้อมูลที่ได้รับ
ตัวแปร(Variable) คือชื่อที่ใช้แทนสิ่งที่ใช้เก็บข้อมูล เป็นสิ่งที่สำคัญที่จะถูกนำมาใช้งานตลอดเวลา โดย การกำหนดชื่อตัวแปรที่นำมาเก็บข้อมูลนั้นจะมีเงื่อนไขดังนี
ชื่อตัวแปรต้องมีเครื่องหมาย $ (Dollar Sign) นำหน้าเสมอ
ชื่อตัวแปรห้ามมีเครื่องหมายทางคณิตศาสตร์
ชื่อตัวแปรห้ามเว้นวรรค
ชื่อตัวแปรห้ามขึ้นต้นด้วยตัวเลข
ชื่อตัวแปรตัวอักษรพิมพ์เล็กกับตัวอักษรพิมพ์ให้ถือเป็นตัวแปรคนละตัวกัน(Case Sensitive)
ชื่อตัวแปรสามารถตั้งได้ทั้งภาษาไทย และอังกฤษ (ควรตั้งเป็นภาษาอังกฤษ), ตัวเลข 0-9, และ สัญลักษณ์ _ (Underscore)
ในการประกาศตัวแปรในภาษา PHP คุณไม่ต้องกำหนดประเภทของตัวแปรเหมือนในภาษา C หรือภาษาอื่นๆ ที่เป็นภาษาประเภท typed language ซึ่งตัวแปรจะขึ้นต้นด้วยเครื่องหมายดอลลา $ และตามด้วยชื่อของตัวแปร
$x = 1;
$x = 2;
$y = $x + 6;
ในตัวอย่างเป็นการประกาศตัวแปรในภาษา PHP ในบรรทัดแรกเป็นการประกาศตัวแปร $x และกำหนดค่าเป็น 1 ในบรรทัดทัดต่อมาเป็นการเปลี่ยนค่าของตัวแปร $x เป็น 2 เพราะว่าเราได้ประกาศตัวแปรนี้ไปแล้ว ถ้าเรายังไม่ประกาศโปรแกรมจะทำการสร้างตัวแปรมาใหม่ ต่อมาเราประกาศตัวแปร $y และกำหนดค่าให้กับมันคือค่าของ $x + 6 ดังนั้นมันจะมีค่าเท่ากับ 8
การตั้งชื่อตัวแปรในภาษา PHP นั้นจะต้องประกอบไปด้วยตัวอักษร ตัวแปรเลขและเครื่องหมาย _ เท่านั้น และไม่สามารถขึ้นต้นด้วยตัวเลขได้ กฏนี้ยังใช้กับการกำหนดชื่ออื่นๆ ที่ผู้ใช้สร้างขึ้น ยกตัวอย่างเช่น ชื่อของฟังก์ชัน เมธอด หรือ คลาส
Info: ในการประกาศชื่อตัวแปรในภาษา PHP คุณสามารถใช้ตัวอักษรภาษาอื่นนอกเหนือจากภาษาอังกฤษได้ เช่น $ชื่อ
$myNumber = 8; // valid
$my_number = 10.2; // valid
$_temp = 0; // valid
$score3 = 50; // valid
$11name = "M"; // not valid, start with number
$a.b = true; // not valid, contain dot
ในตัวอย่างเป็นการตั้งชื่อตัวแปรที่ถูกต้องและไม่ถูกต้องในภาษา PHP และชื่อของตัวแปรนั้นจะเป็นแบบ Case sensitive นั่นหมายความว่าตัวแปร $name $Name และ $NAME นั้นเป็นคนละตัวแปรกัน
$n = 1;
$n = 3.25;
$n = "PHP";
ในการประกาศตัวแปรในภาษา PHP คุณไม่จำเป็นต้องกำหนดประเภทให้กับตัวแปร ซึ่ง PHP จะจัดการเรื่องนี้ให้โดยอัตโนมัติ ในตัวอย่างเราประกาศตัวแปร $n และกำหนดค่า 1 ทำให้ตัวแปรนี้เป็นประเภทจำนวนเต็ม ต่อมาเรากำหนดค่า 3.25 ให้กับตัวแปร ประเภทของตัวแปรจะเปลี่ยนเป็นจำนวนจริง และเปลี่ยนเป็น String ตามลำดับ
ประเภทข้อมูล คือการจำแนกประเภทของข้อมูลแบบต่างๆ การนำมาใช้งานกับตัวแปรในการเขียนโปรแกรม เช่น อายุ เป็นข้อมูลแบบตัวเลข และชื่อเป็นข้อมูลแบบตัวอักษรหรือ String ซึ่งประเภทของข้อมูลแต่ละแบบจะแตกต่างกันและใช้หน่วยความจำในการเก็บข้อมูลที่ต่างกัน
ในการเขียนโปรแกรมนั้นจะมีข้อมูลหลากหลายแบบ เพื่อที่จะจัดการข้อมูลปรเภทต่างๆ คุณจำเป็นต้องเข้าใจประเภทของข้อมูลก่อน ซึ่งในภาษา PHP จะมีข้อมูลแบ่งออกเป็น 8 ประเภท ได้แก่ Boolean Integer Float String Array Resource และ Null ต่อไปเราจะอธิบายแต่ละประเภท
ฺBoolean คือประเภทข้อมูลที่มีค่าที่เป็นไปได้เพียงสองค่าคือ true หรือ false ซึ่งข้อมูลประเภทนี้ใช้หน่วยความจำในการเก็บข้อมูลน้อยที่สุด (1 bit) เราใช้ตัวแปร Boolean ในการเก็บค่าที่เป็นไปได้เพียงสองอย่าง เช่น กลางวันหรือกลางคืน เพศชายหรือเพศหญิง จำนวนคู่หรือจำนวนคี่ เป็นต้น
$male = true;
$is_rain = false;
$is_even_number = (5 % 2 == 0);
$is_odd_number = !$is_even_number;
ในตัวอย่างเราได้ประกาศตัวแปร $male ซึ่งเก็บค่า true ซึ่งเป็นเพศชาย เมื่อตัวแปรนี้มีค่าเป็น false เราจะหมายถึงเพศหญิง ตัวแปรถัดมา $is_rain เป็นตัวแปรเก็บสถานะการตกของฝน เรากำหนดเป็น false หมายถึงฝนไม่ตก
ตัวแปร $is_even_number เป็นการเก็บค่าว่าตัวเลขเป็นเลขจำนวนคู่หรือไม่ โดยเราคำนวณจาก Expression โดยการตรวจสอบว่า 5 หารด้วยสองลงตัวหรือไม่ เพราะ 5 หารด้วยสองไม่ลงตัว ทำให้ได้ค่าเป็น false และตัวแปร $is_odd_number เราเก็บค่าตรงข้ามของตัวแปร $is_even_number ซึ่งตัวแปรนี้จะมีค่าเป็น true
Integer คือประเภทข้อมูลแบบจำนวนเต็ม (จำนวนที่ไม่มีทศนิยม) สามารถเป็นได้จำนวนเต็มบวกและจำนวนเต็มลบ มันใช้สำหรับเก็บข้อมูลที่สามารถนับได้ เช่น จำนวนของแอปเปิ้ลในตระกร้า คะแนนสอบวิชาคณิตศาสตร์ เป็นต้น
<?php
$apple = 3;
$score = -10;
echo "I have $apple apples in the basket.\n";
echo "Your score is $score .\n";
$minute = 5;
$second = 30;
$total_second = ($minute * 60) + $second;
echo "There are $total_second seconds left.\n";
?>
ในตัวอย่างเราประกาศตัวแปรชนิด Integer ทั้งหมด 5 ตัว โดยเรากำหนดค่าให้กับตัวแปรเหล่านั้น และแสดงค่าของตัวแปรออกทางหน้าจอ
ในภาษา PHP คุณยังสามารถกำหนดค่าให้กับตัวแปรในฐานต่างๆ ได้ด้วยการใส่ prefix ในแบบต่างๆ โดยในเลขฐาน 8 จะใช้ 0 ในฐาน 16 จะใช้ 0x และในฐาน 2 จะใช้ ob ซึ่งข้อมูลที่เก็บในตัวแปรจะถูกแปลงไปเป็นฐาน 10
<?php
$decimal = 37;
$octal = 045;
$hexadecimal = 0x25;
$binary = 0b00100101;
echo "$decimal \n";
echo "$octal \n";
echo "$hexadecimal \n";
echo "$binary \n";
?>
ในตัวอย่างเป็นการกำหนดค่าให้กับตัวแปรในรูปแบบฐานต่างๆ เราได้กำหนดค่า 37 ให้กับตัวแปรทั้งหมดซึ่ง 45 ในฐานแปด 25 ในฐานสิบหกและ 00100101 ในฐานสองนั้นมีค่าเท่ากับ 37 ในฐานสิบ
นอกจากนี้ในภาษา PHP ยังมีฟังกันในการแปลงตัวเลขไปยังฐานต่างๆ ที่คุณสามารถเรียกใช้ได้
<?php
echo "10 in binary = ", decbin(10), "\n";
echo "57 hex in dec = ", hexdec(0x57), "\n";
echo "72 oct in dec = ", octdec(015), "\n";
?>
ในตัวอย่างเราเรียกใช้ฟังก์ชันในการแปลงตัวเลขฐาน 10 ไปยังฐาน 2 แปลงฐาน 16 ไปยังฐาน 10 และแปลงฐาน 8 ไปยังฐาน 10 ตามลำดับ
Floating number คือประเภทข้อมูลที่เก็บข้อมูลในรูปแบบของจำนวนจริง ซึ่งมักจะใช้ในการเก็บตัวเลขทีมีค่าและความละเอียดมาก เช่น ข้อมูลการคำนวณทางวิทยาศาตร์หรือตัวเลขที่มีจุดทศนิยม
<?php
$temperature = -10.3;
$height = 6.1;
$pi = 22 / 7;
$distance = 149.6E6;
$atom_size = 0.5E-10;
echo "Temperature is $temperature Celsius degree.\n";
echo "He has $height inches height.\n";
echo "PI value is $pi.\n";
echo "Distance between the earth and the sun $distance km.\n";
echo "Atom's size is about $atom_size meter(s)."
?>
ในตัวอย่างเป็นการประกาศตัวแปรประเภท Floating number และกำหนดค่ราาในรูปแบบต่างๆ ในตัวแปร $temperature และ $height เป็นการกำหนดค่าตัวเลขปกติ ตัวแปร $pi เป็นการกำหนดค่าจาก Expression และสองตัวแปรสุดท้ายเป็นการกำหนดค่าแบบสัญกรณ์วิทยาศาสตร์ เช่น 149.6E6 หมายถึง 14.9 x 10 ^5 และ 0.5E-10 หมายถึง 0.5 x 10 ^ -10
String คือประเภทข้อมูลประเภทข้อความหรือการนำตัวอักษรหลายๆ ตัวมาต่อกัน โดยความยาวของ String นั้นสามารถเปลี่ยนแปลงได้ซึ่งเป็นตัวแปรแบบไดนามิกส์ ในภาษา PHP นั้น สามารถเก็บตัวอักษรได้ทุกแบบ เช่น UTF-8 เนื่องจาก String มีเนื้อหาค่อนข้างมากเราจะพูดในภายหลังในบทของ String
<?php
$country = "United Kingdom";
$fruit = "Apple";
$name = "Marcus";
$date = "November 8, 2016";
?>
นี่เป็นตัวอย่างบางส่วนในการประกาศตัวแปรประเภท String
อาเรย์ คือประเภทข้อมูลแบบชุดซึ่งมีการเก็บของข้อมูลเป็นลำดับโดยมี Index ในการอ้างถึงค่าของสมาชิกในอาเรย์ ยกตัวอย่างเช่น คุณต้องการเก็บรายชื่อของพนักงาน 10 คน คุณจะต้องใช้อาเรย์ในการเก็บข้อมูล ซึ่งจะทำให้สะดวกในการจัดการกับข้อมูลมากจาก อาเรย์มักจะใช้กับคำสั่งวนลูปเช่น คำสั่ง For และ Foreach เพื่อวนอ่านค่าในอาเรย์
$name = ["Thomas", "Danny", "John", "Lisa", "Sophia"];
print_r($name);
$score = [30, 70, 80, 70, 90];
print_r($score);
ในตัวอย่างเป็นการประกาศตัวแปรอาเรย์ในภาษา PHP ซึ่งเป็นอาเรย์ของ String และของ Integer ตามลำดับ เราใช้ฟังก์ชัน print_r() เพื่อแสดงข้อมูลในอาเรย์ สำหรับข้อมูลประเภทอาเรย์เราจะพูดอย่างละเอียดอีกครั้งในบทของอาเรย์
ออบเจ็ค คือประเภทข้อมูลแบบ Reference type ในขณะที่ข้อมูลที่เราได้กล่าวก่อนหน้านั้นเป็นแบบ Value type ซึ่งข้อมูลประเภทนี้อ้างถึงที่อยู่ของออบเจ็คในหน่วยความจำ หรือเรียกว่าตัวแปรพอยน์เตอร์ของข้อมูลที่อ้างไปยังตำแหน่งที่อยู่ในหน่วยความจำ สำหรับข้อมูลประเภทนี้คุณจะได้เรียนในบทของการเขียนโปรแกรมเชิงวัตถุของบทเรียนนี้
Resource คือประเภทข้อมูลพิเศษที่เก็บข้อมูลจากภายนอก โดยข้อมูลของตัวแปรประเภทนี้มักจะสร้างจากฟังก์ชันพิเศษ เช่น การอ่านข้อมูลจากฐานข้อมูล หรือการอ่านข้อมูลของรูปภาพ ข้อมูลเหล่านี้จะถูกเก็บไว้ในตัวแปร Resource ในรูปแบบของ Binary
NULL เป็นข้อมูลชนิดพิเศษในการบ่งบอกถึงว่าตัวแปรไม่ได้ถูกกำหนดหรือสร้างขึ้น ซึ่ง NULL เป็นประเภทข้อมูลของมันเอง ตัวแปรจะมีค่าเป็น NULL ถ้าหากมันถูกกำหนดโดย NULL หรือยังไม่ได้กำหนดค่า หรือการใช้ฟังก์ชัน unset() เพื่อยกเลิกตัวแปร
ค่าคงที่ (Constants) คือค่าของ Literal ใดๆ ที่ถูกกำหนดให้กับตัวแปรค่าคงที่ ค่าคงที่จะไม่สามารถเปลี่ยนแปลงได้ภายในโปรแกรมและเป็นได้เพียงค่าเดียวตั้งแต่โปรแกรมเริ่มจนสิ้นสุดการทำงาน ในภาษา PHP คุณสามารถประกาศค่าคงที่ได้สองแบบโดยการใช้ฟังก์ชัน define() และคำสั่ง Const
ในการประกาศค่าคงที่ในภาษา PHP เราจะใช้ฟังก์ชัน define() ซึ่งเป็นฟังก์ชันสำหรับการประกาศค่าคงที่ในพื้นฐาน มาดูตัวอย่างการใช้งาน
<?php
define('NAME', 'MARCUSCODE');
define('YEAR', 2016);
define('blue', '#0000ff', true);
?>
ในตัวอย่างเราได้ประกาศค่าคงที่ 3 ตัว โดยฟังก์ชันอาร์กิวเมนต์ตัวแรกจะเป็นชื่อของค่าคงที่ ซึ่งเป็น String Literal อาร์กิวเมนต์ตัวที่สองเป็น Literal ใดๆ ในภาษา PHP สำหรับอาร์กิวเมนต์ตัวที่สามเป็นทางเลือก ซึ่งถ้ากำหนดให้เป็น true จะทำให้ค่าคงที่เป็นแบบ case-insensitive นั่นหมายถึงคุณสามารถเรียกใช้ทั้ง blue และ BLUE ได้ ซึ่งโดยปกติแล้วค่านี้จะเป็น false
ต่อไปมาดูตัวอย่างการใช้งานค่าคงที่ในภาษา PHP
?php
define('NAME', 'MARCUSCODE');
define('YEAR', 2016);
define('blue', '#0000ff', true);
echo "Welcome to " . NAME . ".\n";
echo "Next year is " . (YEAR + 1) . ".\n";
if (BLUE !== null) {
echo 'BLUE constant is defined.';
}
?>
ในตัวอย่างเราประกาศค่าคงที่ NAME YEAR และ blue และกำหนดค่าให้กับค่าคงที่เหล่านี้ เราสามารถใช้งานค่าคงที่ได้เหมือนกับตัวแปร ในการใช้กับตัวดำเนินการ หรือคำสั่งตรวจสอบเงื่อนไขต่างๆ
ค่าคงที่ NAME เป็นค่าคงที่แบบ String YEAR เป็นค่าคงที่แบบจำนวนเต็ม (Integer) และสุดท้าย blue เป็นค่าคงที่แบบ String เช่นเดียวกันกับค่าคงที่แรก แต่เราได้กำหนดให้พารามิเตอร์ตัวที่สามเป็น true นั่นหมายความว่าเราสามารถใช้ค่าคงที่แบบ case-insensitive ได้ เช่น BLUE Blue หรือ BlUe เป็นต้น และเราได้แสดงผลค่าคงที่แต่ละตัวออกมา และตรวจสอบเงือนไขด้วยคำสั่ง If ซึ่งใน Expression BLUE !== null จะเป็นจริงถ้าหากค่าคงนี้ถูกกำหนด
นอกจากนี้ในภาษา PHP คุณยังสามารถใช้คำสั่ง Const ในการประกาศค่าคงที่ได้ ซึ่งมันมีข้อแตกต่างจากการใช้ฟังก์ชัน define() ดังนี้
Const จะทำการกำหนดค่าคงที่ในเวลา Run-time ในขณะที่ define() กำหนดค่าคงที่ใน Compile
Const ไม่สามารถใช้ในบล็อคของคำสั่ง เช่น If For หรือ While เป็นต้น
Const สามารถกำหนดค่า Literal เท่านั้น ในขณะที่ define() สามารถเป็น Expression ใดๆ
Const จะเป็นแบบ case-sensitive ในขณะที่ define() สามารถกำหนดเป็น case-insensitive ได้
Const สามารถกำหนดค่าแบบอาเรย์ได้ ในขณะที่ define() ไม่สามารถทำได้
Const สามารถใช้ประกาศเป็นค่าคงที่ภายในคลาสหรือ Interface ได้
ต่อไปมาดูตัวอย่างการประกาศและใช้งานค่าคงที่ด้วยคำสั่ง Const ในภาษา PHP กับโปรแกรมในการหาข้อมูลเกี่ยวกับวงกลม
<?php
const PI = 3.14;
const UNIT = "Inch";
$r = 5.6;
$diameter = 2 * $r;
$area = PI * pow($r, 2);
$circumference = 2 * PI * $r;
$volume = (4 / 3) * PI * pow($r, 3);
$surface_area = 4 * PI * pow($r, 2);
echo "Circle with radius $r " . UNIT . " has\n";
echo "Diameter = $diameter " . UNIT . "\n";
echo "Area = $area Square " . UNIT . "\n";
echo "Circumference = $circumference " . UNIT . "\n";
echo "Volume = $volume Cube " . UNIT . "\n";
echo "Surface area = $surface_area Square " . UNIT . "\n";
?>
ในโปรแกรมเรามีค่าคงที่สองตัวคือ PI และ UNIT ซึ่งเป็นหน่วยของความยาวในการวัดระยะ ขนาดและปริมาตรของวงกลม ซึ่งเราได้คำนวณค่าต่างๆ ของวงกลมจากสูตรโดยการทราบรัศมีของวงกลมในตัวแปร $r
และนี่เป็นผลลัพธ์ของโปรแกรม ซึ่งคุณจะเห็นว่าค่าคงที่นั้นมีประโยชน์ในการลดความซ้ำซ้อนของข้อมูล เราใช้ PI แทนค่าของ 3.14 และใช้ UNIT แทนหน่วย ซึ่งเราสามารถเปลี่ยนแปลงค่าเหล่านี้ได้ทั้งหมดเพียงแค่เปลี่ยนจากค่าคงที่
ในการใช้งานค่าคงที่นั้นเป็นสิ่งที่สำคัญ เช่นในการเขียนโปรแกรมที่คุณต้องใช้ค่าเดิม แทนที่จะแทนที่ค่านั้นลงไปโดยตรง เรากำหนดไว้ในค่าคงที่แทน นี่จะช่วยให้คุณสามารถแก้ไขค่าเหล่านี้ได้ง่ายในภายหลัง ยกตัวอย่างเช่นในตัวอย่างข้างบน ถ้าคุณไม่ใช้ค่าคงที่ PI คุณจะต้องแทนที่ค่า 3.14 ทุกๆ ที่ในโปรแกรม และค่าคงที่ UNIT ก็เช่นกัน การใช้ค่าคงที่ที่เหมาะสมจะช่วยให้โค้ดของคุณเข้าใจง่ายและเป็นระบบมากขึ้น
n = str(input("enternumber 3 number exp [5 4 2] :"))
n= n.split(" ")
n1=int(n[0])
n2=int(n[1])
n3=int(n[2])
sorted_numbers = sorted([n1, n2, n3])
n1=sorted_numbers[0]
n2=sorted_numbers[1]
n3=sorted_numbers[2]
print (n1,n2,n3)
s =str(input("enterchar for sort [ABC]:"))
s1=s.upper()
if(s1=="ABC"):
print (n1,n2,n3)
elif(s1=="ACB"):
print (n1,n3,n2)
elif(s1=="BAC"):
print (n2,n1,n3)
print (s1)