ภาพปก php ep 2 ตัวแปรและฟังก์ชั่น

PHP ตอนที่ 2 ตัวแปรและฟังก์ชั่น

หลังจากเราเรียนรู้กันไปสำหรับพื้นฐานในตอนที่ 1 แล้วในบทนี้เราจะมาเรียนพื้นฐานต่อไปคือ เกี่ยวกับตัวแปรและการประกาศ funciton บางคนอาจจะเคยได้ยิน บางคนได้ยินแล้วคำว่าตัวแปร ก็แขยงอยากวิ่งหนีแล้ว ใจเย็นๆมันไม่ได้น่ากลัวอย่างที่คิดครับ ลองอ่านกันก่อนแล้วค่อยๆเปิดใจกัน

PHP variable ( ตัวแปร )

php overview
php overview

ผมจะพยายามสอนคำที่ใช้ในวงการเขียนโปรแกรมไปด้วยนะครับ ถ้าคุณอ่านแล้วก็พยายามอ่านให้ชินไปเลยครับ เอาล่ะเข้าเรื่องดีกว่า คืออย่างนี้เวลาที่เราจะเขียน program เราคงไม่ได้อยากจะแสดงแค่คำว่า hello world ออกมาทางหน้าจออย่างเดียว เหมือนที่เราทำในบทที่ 1 มันต้องมีการ รับค่า คำนวน แล้วก็ส่งค่าไปที่อื่น ในการเขียนโปรแกรมส่วนใหญ่มักเรียกว่า

input -> process -> output 

เนื่องจากมีการ รับค่า แน่นอนครับโปรแกรมหรือเว็บไซต์ที่เราเขียนนั้นมันต้องมีหน้าให้กรอกข้อมูลต่างๆ ซึ่งมันจะส่งค่ามาให้ในโปรแกรมของเรา และโปรแกรมของเราต้องเอาค่าต่างๆเหล่านั้นไปใช้งานต่อ ซึ่งจำเป็นต้องมีอะไรซักอย่างมารับค่าพวกนั้นครับ เราเรียกตัวมารับว่า ตัวแปร ( variable ) นั่นเอง !!!!

โดยตัวแปรมีหลายชนิดแต่ก่อนจะไปรู้จักแต่ละชนิดเรามาดูวิธีประกาศตัวแปรหรือการใช้งานมันก่อนครับ วิธีประกาศตัวแปรก็ทำได้ง่ายๆคือเอาตัว “$” ไว้ข้างหน้า และจบด้วย semicolon (;) เสมอครับถ้าคุณไม่ใส่ code จะพังทันที ถามว่าทำไมต้องเขียนแบบนี้ มันเป็นข้อกำหนดแต่ละภาษาจะแตกต่างกันครับแต่ไม่มาก คล้ายๆกับเวลาคุณเรียนภาษาอังกฤษมันต้องมี ประธาน กริยา กรรม หรือตัวบอก tense ต่างๆทำนองนั้นแหละครับ เช่น

<?php
  $greetingWord = 'Hello World';
  $age = 30;
  $price = 10.50;
?>

โดยหลักการตั้งชื่อก็จะมีสองอย่างที่ต้องระวังคือ อย่าไปตั้งชื่อพวกคำสงวน หมายถึงคำที่ใน ภาษานั้นๆเขาใช้ เช่น $_POST , $_SESSION แต่เอาจริงๆคือเราไม่นิยมตั้งชื่อแบบนี้อยู่ครับ เวลาตั้งชื่อตัวแปรนั้น เราจะตั้งชื่อตามสิ่งที่มันควรจะเป็นครับ เช่น อย่างตัวอย่างข้างบน ถ้ามันเป็นตัวแปรสำหรับ เรื่องทักทาย ก็ตั้งชื่อตัวแปรให้สื่อสารครับ เพราะว่าในโลกความเป็นจริงแล้วเราไม่ได้ทำงานคนเดียวถึงแม้จะทำงานคนเดียวแต่ เราจะกลับมาแก้ไขโค้ดพวกนี้ภายหลังเราจะได้รู้ว่ามันคืออะไร สื่อถึงอะไรใช้ทำอะไรครับ

หลายคนอาจจะเคยเห็นตัวอย่างในเน็ตว่าเขาจะตั้งชื่อตัวแปรเร็วๆ ถ้าเราเข้าใจมันก็อย่าลืมเปลี่ยนชื่อให้สื่อครับ ยกตัวอย่าง​ code จากเน็ตแบบไม่ดีนะครับ

<?php
  $a = 1;
  $b = 'this is a bad variable';
?>

โอเคหลังจากที่เราเข้าใจแหละว่ามันประกาศตัวแปรทำไมเพื่ออะไร คราวนี้เราไปรู้จักตัวแปรชนิดต่างๆกันเลยดีกว่าว่ามีอะไรให้เราใช้งานบ้างครับ

ไม่มีความสำเร็จใด ที่จะไม่ใช้ความพยายามและเวลา

มาถึงจุดแวะพักระหว่างบทความครับ พักกินน้ำดูหนังก่อนได้ ซัก 10 นาที

ชนิดของตัวแปร PHP มีอะไรบ้าง ?

จริงๆแล้วในภาษาโปรแกรมมิ่งอื่นๆนั้นจะค่อนข้าง strict type หรือเรียกว่า strong type หมายความว่า เราต้องกำหนดตัวแปรนั้นๆ มาตั้งแต่แรกว่าจะให้เป็น string ( คำหรือประโยค ) หรือ integer ( ตัวเลขจำนวนเต็ม ) แต่ในภาษา PHP นั้นดันเป็น Dynamic type หมายถึง ตัวแปรจะเปลี่ยนแปลงได้ ยกตัวอย่างเช่น

<?php
  $a = 'hi';
  $a = 10;
  echo $a; // ค่าที่แสดงออกหน้าจอจะเป็น 10
?>

จะเห็นว่ามันอันตรายมาก ถ้าสมมติคุณต้องตรวจสอบค่าของ a ในอนาคตแล้วดันเปลี่ยนค่าซะงั้นแต่ถามว่า PHP มันเขียนแบบ strong type ได้ไหม คำตอบคือได้ครับ แต่ไว้คุณอาจจะต้องไปพัฒนาต่อจากสิ่งที่เรียนอีกทีครับ เพราะมันจะยากไปสำหรับคนหัด

String

ตัวแปรชนิดแรกที่จะพูดถึงคือตัวแปรชนิด string เป็นตัวแปรแบบรองรับตัวอักษรนั่นเอง ไม่ว่าจะเป็น คำ ประโยค หรือแค่ตัวอักษรเดียว เรียกว่าเป็นตัวแปรชนิด string หมดครับ โดยหลักการใช้งานตัวแปรชนิดนี้ก็คือการใช้ single qoute (‘) ตัว double qoute (“) ในการครอบทั้งสองฝั่งตามตัวอย่างด้านล่างเลย

<?php
  $a = 'Hello';
  $b = "World";
?>

ซึ่งแบบที่ 2 จะแตกต่างตอนเอาไปใช้งานนิดหน่อยโดยเราสามารถใส่ตัวแปรเข้าไประหว่างประโยคเลย เช่น

<?php
  $myName = 'Tony';
  echo "Hi! $myName welcome back";
?>

จะเห็นว่าผลลัพธ์คือ Hi! Tony welcome back แต่ถ้าสมมติคุณลองเปลี่ยนเป็น single quote ผลลัพธ์จะเป็น Hi! $myName welcome back จำง่ายๆว่าถ้าประโยคที่เราจะใช้งานไม่มีตัวแปรมาแทรก ใช้ single quote ครับถ้ามีก็ใช้ double quote ครับ

Integer

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

<?php
  $a = 100;
  $b = 2;
  $c = $a + $b;
  $d = $a - $b;
  $e = $a * $b;
  $f = $a/$b;
  echo $c; // จะแสดงผล 102 ในหน้าจอ
  echo $d; // จะแสดงผล 98 ในหน้าจอ
  echo $e; // จะแสดงผล 200 ในหน้าจอ
  echo $f; // จะแสดงผล 50 ในหน้าจอ
?>

จะเห็นว่าตัวแปรชนิดนี้ก็คือการนำตัวแปร int ชนิดเดียวกันมากระทำด้วยเครื่องหมายต่างๆ อย่างตัวอย่างข้างบนนั้นคือ การ บวก ลบ คูณ หาร ซึ่งในความเป็นจริงนั้นมันสามารถคำนวนอะไรได้เยอะกว่านี้ครับ เช่น คำนวนค่า sin, cos , tan แบบนี้ก็ได้แต่ผมยังไม่พูดถึงจุดนี้แค่อยากให้คุณเรียนรู้ว่าตัวแปรชนิดนี้คืออะไรก่อนครับ

เอาล่ะ ! งั้นเรามาลองอะไรแปลกๆกันดูครับ ลองเอา code ด้านล่างนี้ไปเขียนดูครับ

<?php
   $age = 35;
   $a = 'aaaa';
   $b = $age + $a;
   echo $b;
?>

จากตรงนี้ให้คุณทายเล่นๆว่า คำตอบจะออกมาเป็นอะไรครับ ? เป็น 35 หรือเปล่า ? หรือว่าเป็น ’35aaaa’ ? ระหว่างที่อ่านถึงจุดนี้ผมคิดว่าคุณมีคำตอบในใจแล้วแน่ๆ ผมจะเฉลยให้คุณดูครับ ……

ถ้าคุณใช้ PHP version ต่ำกว่า 7.1 มันจะให้ผลลัพธ์เป็น 35 ครับแต่ถ้าหากคุณใน version สูงกว่านั้นมันจะแจ้ง Error ครับซึ่งอันนี้ดีนะครับควรจะใช้ PHP version ใหม่ๆ แต่ไม่ต้องใหม่สุดก็ได้ ปัจจุบัน PHP เป็น version 8 ณ วันที่เขียนบทความครับ

ซึ่งหากเขียน PHP version เก่าๆ ณ วันที่เขียนบทความ hosting ยังมี version 5.6 อยู่ซึ่งควรตรวจสอบ hosting ด้วยว่า PHP ใน version อะไรเพื่อให้ code นั้นทำงานได้ถูกต้องมากขึ้นครับ

Float

พอเรารู้จักตัวแปรแบบ เลขจำนวนเต็ม เราก็ต้องมารู้จักเลข ทศนิยม ต่อครับนั่นคือ Float นั่นเอง ตัวแปรนี้จะใช้กันบ่อยๆคือ พวกราคา การคำนวนเงิน หรือพวกนน้ำหนัก พวกที่ต้องมี ทศนิยม ทั้งหลายโดยการเรียกใช้งานก็จะคล้ายๆกับ integer

<?php
  $a = 1.5;
  $b = 3.2;
  echo $a + $b; // ผลลัพธ์จะเป็นแสดง 4.7 ตรงหน้าจอ
?>

Boolean

ตัวแปรชนิดต่อมาเป็นตัวแปรที่มีแค่ 2 ค่าเท่านั้นครับคือ true , false คล้ายๆกับสวิทช์ไฟ ปิดเปิดครับ โดยเรามักจะใช้ในกรณีเช็คค่า หรือตรวจสอบว่า ค่าไหนเป็น true ให้ทำอะไร หรือ false ต้องทำอะไร ซึ่งเราจะไปเรียนรู้เพิ่มเติมตอนที่เราเรียนเกี่ยวกับการเช็คเงื่อนไข พวก if else ครับ จะเขียนเป็นตัวเล็กหมดหรือตัวใหญ่ ได้หมดแต่ควรจะกำหนดกับทีมหรือถ้าเขียนคนเดียวก็เขียนให้เป็นแนวเดียวกันครับ

<?php
   $isSend = TRUE;
   $isFail = FALSE;
?>

Array

เอาล่ะถึง Last Boss ของบทความนี้ซักที เตรียมใจไว้ได้เลย โดยตัวแปร Array หลายๆคนน่าจะได้เคยได้ยินคำนี้กันมาบ้างมันคืออะไร มันใช้งานยังไง แล้วทำไมคนนิยมใช้งานเจ้าตัวแปรนี้กันจังเราไปดูกันเลยครับ

ตัวแปร Array นั้นให้คุณนึกถึง ตะกร้าที่เราสามารถแบ่งเป็นช่องๆหลายๆช่องครับ สมมติว่าตะกร้าของเราชื่อว่า $words นะครับดูรูปด้านล่างเลยครับ

ตะกร้า $words

เป็นตัวแปรที่เก็บค่าได้หลายๆแบบ โดยเราจะเริ่มเก็บแต่ละตัวเข้าไปโดยจะเริ่มจะ index ที่ 0 สมมติว่าในภาพเราจะเริ่มนับจากซ้ายไปขวาและจากบนลงด้านล่างนะครับ แปลว่าตัวเริ่มต้นในตะกร้าของเราคือ ช่องสีแดงซ้ายบนนั่นเองครับ ที่เก็บค่าไว้ว่า “Hello” คราวนี้เรามาดูวิธีการประกาศตัวแปร Array กันครับ

<?php
  $words = [];
  $ages = [12,16,29,30];
  print_r($ages); // จะทำการแสดงข้อมูลทั้งหมดใน array 
  $people = [
    'tony' => 'John Snow',
    'jenny' => 'Jenifer Yen',
    'ben' => 'Berry Riffer'
  ];
  print_r($people);
  echo $people['tony']; // ค่าที่แสดงออกหน้าจอคือ John Snow
?>

การประกาศตัวแปรจริงๆแล้วมีอีกแบบแต่ผมคิดว่าคุณเรียนรู้วิธีประกาศแบบนี้ไปเลยเพราะว่ามันจะคล้ายๆกับ javascript และภาษาใหม่ๆในตอนนี้ การใช้ function print_r เราจะใช้สำหรับการแสดงผลของ array หรือพวก object ( ซึ่งตอนนี้คุณยังไม่เรียน object ไม่เป็นไรครับ ) ปกติผมใช้ function print_r ในการเช็คของใน array ครับ

จะสังเกตว่าที่ตัวแปร $people นั้นผมได้ทำการประกาศค่า key โดยปกติแล้วมันจะเป็นค่าตัวเลข 0,1,2,3 … ไปเรื่อยๆ ถ้าเราไม่ประกาศค่า key แต่บางครั้งเราต้องการตั้งค่า key เพื่อเอาไปใช้งานหรือเช็คค่าก็สามารถทำได้นะครับจะเห็นว่าเราก็สามารถเลือกพวกค่า key ต่างๆให้แสดงผลออกมาได้ทันทีครับถ้าเรารู้ว่า key นั้นชื่ออะไร

ส่วนการใช้งานจริงเราจะเรียนรู้การใช้งานในบทต่อไปครับ ไม่ต้องห่วง

หนทางหมื่นลี้ เริ่มต้นที่ก้าวแรก

จุดพักการอ่านในบทความครับ พักกินน้ำกินท่าก่อน 5 นาที

Function ( ฟังก์ชั่น )

ฟังก์ชั่นคืออะไร ? มันคือชุดคำสั่งที่มีการเขียนไว้เพื่อให้เรียกใช้งานซ้ำๆได้ ยกตัวอย่างเช่น สมมติเราต้องเขียนการ บวก เลข โดยต้องทำเป็นซ้ำๆเช่นคุณอาจจะต้องการบวกเลขซัก 3 รอบ แน่นอนคุณอาจจะคิดว่าก็น่าจะเขียนได้เช่น

<?php
  $a = 10;
  $b = 20;
  $c = 30;
  $d = 40;
  $e = 50;
  $f = 60;
  echo $a + $b;
  echo $c + $d;
  echo $e + $f;
?>

แต่จะเห็นว่าการทำแบบนี้ถ้าสมมติว่าผมเปลี่ยนโจทย์จาก 3 เป็น 10 ครั้งละครับ คุณจะเขียนยังไง ? คุณก็ต้องประกาศตัวแปรเพิ่มเข้าไปอีก และมีบรรทัดของการ echo อีกไม่รู้กี่บรรทัดซึ่งมันเยอะมากๆ เราจึงไม่เขียนแบบนั้นและเริ่มมาสร้าง function กันเถอะครับ

<?php
// วิธีประกาศ function
function plusTwoVaue($leftOperant, $rightOperant) {
  echo $leftOperant + $rightOperant;
}
// วิธีเรียกใช้ function
plusTwoValue(10, 20); // แสดงผลหน้าจอ 30 
plusTwoValue(30, 40); // แสดงผลหน้าจอ 70
?>

อธิบาย code ด้านบนก่อนคืออย่างแรกการประกาศ function มีรูปแบบการประกาศแบบนี้ครับ

<?php
function [ชื่อ function ] ($parameter) {
   // ให้ทำอะไรซักอย่าง
}
?>

ถ้าสมมติ function ของเราไม่รับค่าก็ไม่ต้องส่ง $parameter เข้ามาครับ สามารถใส่แค่ () ได้เลยครับ คราวนี้คุณก็เริ่มเข้าใจแล้วว่าจริงๆแล้ว function ก็คือการสร้างชุดคำสั่งเก็บไว้เรียกใช้งาน เมื่อคุณต้องการทำอะไรซ้ำๆกันหรือสามารถปรับเปลี่ยนค่าต่างๆได้ โดยใน function ก็สามารถเรียก function อื่นๆได้อีกด้วยครับ

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

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

สรุป

ในบทความนี้คุณได้เรียนรู้แล้วว่าการเขียนโปรแกรมต้องมีขั้นตอน

input -> process -> output

และในบทความนี้คุณได้รู้เรื่องขั้นแรกแล้วสำหรับการรับค่า input ส่วนค่าจะโยนเข้ามาในโปรแกรมเราเดี๋ยวค่อยว่ากันต่อไปครับ เราได้เรียนรู้เกี่ยวกับตัวแปรว่า

มันคือสิ่งที่ใช้ตอนเขียนโปรแกรมสำหรับการรับค่าเพื่อจะรองรับค่าต่างๆและวิธีการประกาศค่าการเช็คค่าของตัวแปรด้วย function echo, print_r

ในบทต่อไปเราจะเรียนรู้ว่าการเช็คค่าและเงื่อนไข ( if … else ) และการวนลูปแบบต่างๆ ( Loop )

กลับไปหน้าสารบัญ

https://oxygenyoyo.com/2021/01/18/index-getting-started-code-website/

Loading

เป็นโปรแกรมเมอร์ที่ตามหาคุณค่าของชีวิตและความฝันในวัยเด็ก ชอบเล่นเกม เรียนรู้ทุกอย่าง ชอบเจอคนใหม่ๆ งานสังคมทุกชนิด ออกกำลังกายในวันว่าง อ่านหนังสือ มีเว็บรีวิวหนังสือด้วย www.readraide.in.th