การกำหนดค่าพารามิเตอร์เเละการกำหนดชนิดข้อมูลของพารามิเตอร์ใน PHP 7

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

pataponnew
PHP Hero Member
PHP Hero Member
โพสต์: 152
ลงทะเบียนเมื่อ: 03/05/2021 10:18 am

การกำหนดค่าพารามิเตอร์เเละการกำหนดชนิดข้อมูลของพารามิเตอร์ใน PHP 7

โพสต์ที่ยังไม่ได้อ่าน โดย pataponnew »

ในภาษา PHP จะต้องมีการกำหนดค่าพารามิเตอร์ พารามิเตอร์ (Parameter) คือข้อมูลที่จะถูกนำไปใช้ประมวลผลภายในฟังก์ชัน
ซึ่งนอกจากการกำหนดค่าแบบพื้นฐานทั่วไปแล้ว ยังมีเทคนิคอื่นๆ เกี่ยวกับพารามิเตอร์ที่ควรรู้จักเพิ่มเติม ดังต่อไปนี้

พารามิเตอร์และอาร์กิวเมนต์
กรณีของการเรียกฟังก์ชันที่มีพารามิเตอร์ ข้อมูลที่ระบุเพื่อส่งไปยังฟังก็ชันจะเรียกว่า อาร์กิวเมนต์
(Argument) ซึ่งเราสามารถเปรียบเทียบระหว่าง พารามิเตอร์กับอาร์กิวเมนต์ได้ดังนี้

โค้ด: เลือกทั้งหมด

function hello($name) {
    echo "Hello $name!\n";
}
$name คือพารามิเตอร์

โค้ด: เลือกทั้งหมด

hello('PHP');
PHP คืออาร์กิวเมนต์

โดยสรุปแล้ว อาร์กิวเมนต์คือข้อมูลที่จะส่งให้กับพารามิเตอร์ ดังนั้น ทั้งสองอย่างนี้ก็หมายถึงข้อมูลอัน
เดียวกัน เพียงแค่แยกพิจารณาคนฝั่งเท่านั้น คือ
ทางด้านที่กำหนดฟังก์ชัน จะเรียกรูปแบบข้อมูลที่รับเข้ามาใช้งานว่า Formal Parameter หรือเรียกสั้นๆ ว่า Parameter (พารามิเตอร์)
ทางด้านที่เรียกใช้ฟังก์ชัน จะเรียกข้อมูลที่ระบุเพื่อส่งออกไปว่า Argument (อาร์กิวเมนต์) หรือ Actual Parameter

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

โค้ด: เลือกทั้งหมด

function add_number($number1,$number2){
  return $number1 + $number2;
}
จากโค้ด ค่าที่จะกำหนดให้แก่ฟังก์ชัน add_number() ต้องเป็นตัวเลขเท่านั้น จึงจะได้ผลลัพธ์ที่ถูกต้อง แต่เนื่องจาก
ที่ฟังก์ชัน ไม่มีข้อบังคับเรื่องชนิดข้อมูล ดังนั้น ผู้เรียกใช้ฟังก็ชัน จึงอาจระบุค่าเป็นข้อมูลชนิดอื่นๆ ก็ได้ ซึ่งอาจ
ก่อให้เกิดข้อผิดพลาดขึ้น เช่น

โค้ด: เลือกทั้งหมด

<?php 
function add_number($number1,$number2){
    return $number1 + $number2;
  }
echo add_number("hello","sawaddee");  
?>

ผลลัพธ์
Output การเเสดงผลผิดพลาดของการใส่อาร์กิวเมนต์ไม่ตรงชนิด
Output การเเสดงผลผิดพลาดของการใส่อาร์กิวเมนต์ไม่ตรงชนิด
bandicam 2021-06-02 12-36-57-576.jpg (20.91 KiB) Viewed 1300 times
เพื่อเป็นการแก้ปัญหาดังกล่าว ใน PHP 7 จึงได้เพิ่มทางเลือกให้ผู้สร้างฟังก์ชัน สามารถระบุชนิดข้อมูล
พื้นฐานให้กับพารามิเตอร์แต่ละตัวได้ โดยชนิดข้อมูลที่เราใช้กันหลักๆคือ

int ชนิดข้อมูลแบบเลขจำนวนเต็ม
float ชนิดข้อมูลแบบเลขทศนิยม
string ชนิดข้อมูลแบบสตริง
bool ชนิดข้อมูลแบบจริง/เท็จ หรือ true/false
array ชนิดข้อมูลแบบอาร์เรย์
Class ระบุเป็นชื่อคลาส
วิธีการใช้งานคือ ให้ระบุชนิดข้อมูลไว้หน้าชื่อพารามิเตอร์ เช่น

โค้ด: เลือกทั้งหมด

<?php 
function add_number(int $number1,int $number2){
    return $number1 + $number2;
  }
echo add_number("hello","sawaddee");  
?>

ผลลัพธ์
Output การเเสดงผลผิดพลาดของการใส่อาร์กิวเมนต์ไม่ตรงชนิด
Output การเเสดงผลผิดพลาดของการใส่อาร์กิวเมนต์ไม่ตรงชนิด
bandicam 2021-06-02 12-40-22-240.jpg (49.48 KiB) Viewed 1300 times
จากหน้า Error จะมีการเเสดงข้อความบอกว่า ชนิดของอาร์กิวเมนต์ไม่ถูกต้องกับที่กำหนดใส่ส่วนของพารามิเตอร์

อย่างไรก็ตาม การระบุชนิดข้อมูลดังกล่าวนี้ ใช้ได้เฉพาะกับพารามิเตอร์ของฟังก็ชันเท่านั้น แต่ไม่สามารถใช้กับตัวแปรทั่วๆ ไปได้

ในภาษา PHP การกำหนดพารามิเตอร์ให้ถูกต้องนั้นมีความสำคัญในส่วนของการทำงานของฟังก์ชัน ถ้าเรากำหนดค่าพารามิเตอร์ไม่ถูกต้องอาจส่งผลการฟังก์ชั่นของเรามาการทำงานที่ผิดพลาดหรือ Error ได้ครับ

อ้างอิง
https://www.review108free.com/%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%99-(Function)-%E0%B9%83%E0%B8%99-PHP-rv.74.html
https://www.doesystem.com/670570824230dab21c2e5321e1372b1f/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99-Function-%E0%B9%83%E0%B8%99-PHP.htm
https://phpcodemania.blogspot.com/2019/12/php-http-build-query.html?fbclid=IwAR2uj_Y0tQLBCEFsYyTQLOElNJ8KqiPlfKmYR5xROztzR5Cc-O1gZrjOOGM

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 75