ทำความเข้าใจ PHP: ตัวแปรถูกส่งโดย ค่า
หรือ อ้างอิง
?
เมื่อดำดิ่งเข้าสู่วงการโปรแกรม PHP คำถามที่พบบ่อยคือ: ตัวแปร PHP ถูกส่งโดย ค่า
หรือโดย อ้างอิง
? ความแตกต่างระหว่างสองวิธีการนี้ในการจัดการข้อมูลตัวแปรนั้นมีความสำคัญต่อผู้พัฒนา เนื่องจากมันมีผลต่อการทำงานของฟังก์ชันและวิธีที่ตัวแปรสามารถถูกจัดการได้
พื้นฐานของการส่งตัวแปรใน PHP
ใน PHP เมื่อคุณส่งพารามิเตอร์ไปยังฟังก์ชันสามารถทำได้สองวิธี:
-
โดยค่า
- สำเนาของค่าของตัวแปรจะถูกส่งไปยังฟังก์ชัน
- การเปลี่ยนแปลงที่ทำภายในฟังก์ชันจะไม่กระทบต่อค่าตัวแปรดั้งเดิม
-
โดยอ้างอิง
- การอ้างอิงไปยังตัวแปรดั้งเดิมจะถูกส่งไปยังฟังก์ชัน
- ดังนั้นการเปลี่ยนแปลงใดๆ ที่ทำภายในฟังก์ชันจะมีผลโดยตรงต่อค่าตัวแปรดั้งเดิม
พฤติกรรมเริ่มต้นของ PHP
ตามที่ระบุใน เอกสาร PHP พฤติกรรมเริ่มต้นของ PHP คือการส่งตัวแปร โดยค่า นี่หมายความว่าหากคุณทำการดัดแปลงภายในฟังก์ชัน การเปลี่ยนแปลงจะไม่สะท้อนต่อค่าตัวแปรนอกหน้าที่ของฟังก์ชัน
ตัวอย่างการส่งโดยค่า
function changeValue($var) {
$var = "ค่าใหม่";
}
$value = "ค่าต้นฉบับ";
changeValue($value);
echo $value; // แสดงผล: ค่าต้นฉบับ
ในตัวอย่างข้างต้น ฟังก์ชัน changeValue
ไม่ได้เปลี่ยนค่า $value
แสดงให้เห็นถึงพฤติกรรมการส่งโดยค่า
วิธีการส่งตัวแปรโดยอ้างอิง
หากคุณต้องการให้ฟังก์ชันดัดแปลงพารามิเตอร์ของมัน คุณจะต้องส่งพารามิเตอร์โดยอ้างอิง ซึ่งสามารถทำได้โดยการเติมเครื่องหมายแอมเพอแซนด์ (&
) ไว้หน้าพารามิเตอร์ในคำจำกัดความฟังก์ชัน
ตัวอย่างการส่งโดยอ้างอิง
นี่คือตัวอย่างการใช้งานจริงที่แสดงวิธีการส่งตัวแปรโดยอ้างอิงใน PHP:
function add_some_extra(&$string) {
$string .= ' และข้อมูลเพิ่มเติม.';
}
$str = 'นี่คือตัวอักษร,';
add_some_extra($str);
echo $str; // แสดงผล: นี่คือตัวอักษร, และข้อมูลเพิ่มเติม.
การวิเคราะห์ตัวอย่าง:
- การกำหนดฟังก์ชัน:
&$string
หมายถึงว่าตัวแปร$string
ถูกส่งโดยอ้างอิง - การดัดแปลง: ภายในฟังก์ชันสายอักขระจะถูกดัดแปลงโดยการต่อสายอักขระอีกชุดเข้ามา
- ผลลัพธ์: สายอักขระต้นฉบับ
$str
แสดงถึงการเปลี่ยนแปลงนี้ แสดงให้เห็นว่ามันถูกดัดแปลงนอกฟังก์ชันด้วย
สรุป
การทำความเข้าใจว่าตัวแปร PHP ถูกส่งโดย ค่า
หรือ อ้างอิง
เป็นสิ่งจำเป็นสำหรับการเขียนโปรแกรมอย่างมีประสิทธิภาพ โดยตามค่าเริ่มต้น PHP จะทำงานในรูปแบบการส่งโดยค่า ซึ่งช่วยรักษาความถูกต้องของข้อมูลดั้งเดิม อย่างไรก็ตาม เมื่อมีความจำเป็นต้องดัดแปลง การส่งตัวแปรโดยอ้างอิงจะช่วยให้มีความยืดหยุ่นในการแก้ไขค่าตัวแปรดั้งเดิมได้โดยตรง
ข้อคิดสำคัญ
- วิธีเริ่มต้น: PHP ส่งพารามิเตอร์โดยค่า ซึ่งหมายความว่าการเปลี่ยนแปลงภายในฟังก์ชันจะไม่ส่งผลกระทบต่อค่าตัวแปรดั้งเดิม
- เพื่อการดัดแปลง: ใช้การส่งโดยอ้างอิงโดยการเพิ่มแอมเพอแซนด์
&
ก่อนชื่อของตัวแปรในคำจำกัดความฟังก์ชัน
ไม่ว่าคุณจะเป็นมือใหม่หรือต้องการปรับปรุงทักษะ PHP ของคุณ การรู้วิธีการจัดการการส่งตัวแปรสามารถช่วยเพิ่มความสามารถในการเขียนโค้ดของคุณได้อย่างมาก ขอให้สนุกกับการเขียนโค้ด!