ในบทความนี้ เราจะเรียนรู้เกี่ยวกับการส่งผ่านค่าและการอ้างอิงใน PHP
ตอนนี้ มาทำความเข้าใจแนวคิดทั้งสองนี้โดยละเอียดกัน
โดยทั่วไปใน PHP เราติดตามเพื่อส่งต่ออาร์กิวเมนต์ไปยังฟังก์ชันด้วยวิธีการส่งผ่านค่า เรากำลังปฏิบัติตามแนวทางปฏิบัตินี้เพราะหากค่าของอาร์กิวเมนต์ภายในฟังก์ชันมีการเปลี่ยนแปลง ค่าดังกล่าวจะไม่เปลี่ยนแปลงนอกฟังก์ชัน
ในบางกรณี เราอาจจำเป็นต้องแก้ไขอาร์กิวเมนต์ของฟังก์ชัน ดังนั้นเพื่อให้ฟังก์ชันแก้ไขอาร์กิวเมนต์ได้ อาร์กิวเมนต์ดังกล่าวต้องส่งผ่านโดยการอ้างอิง
เริ่มต้นด้วยการผ่านโดยการอ้างอิง ดังที่ได้กล่าวไปแล้วเราสามารถส่งผ่านตัวแปรโดยอ้างอิงถึงฟังก์ชันเพื่อให้ฟังก์ชันสามารถแก้ไขตัวแปรได้ ในการเริ่มต้นกระบวนการส่งพารามิเตอร์ที่ส่งโดยการอ้างอิง ให้เติมเครื่องหมายและ (&) หน้าชื่ออาร์กิวเมนต์ในนิยามฟังก์ชัน
ตัวอย่าง
มาทดสอบกันโดยใช้ตัวอย่างง่ายๆ
<?php function calculate(&$a){ $a++; } $a=5; calculate($a); echo $a; ?>
ผลลัพธ์
6
คำอธิบาย
ที่นี่เราได้ประกาศตัวแปร $a และส่งผ่านโดยการอ้างอิงไปยังฟังก์ชัน คำนวณ () ตามหลักการที่ว่าถ้าค่าของ $a เปลี่ยนไปในฟังก์ชัน ค่าก็จะเปลี่ยนไปนอกฟังก์ชันด้วย
หมายเหตุ
ไม่มีเครื่องหมายอ้างอิงในการเรียกใช้ฟังก์ชัน - เฉพาะในข้อกำหนดของฟังก์ชันเท่านั้น คำจำกัดความของฟังก์ชันเพียงอย่างเดียวก็เพียงพอที่จะส่งผ่านอาร์กิวเมนต์ได้อย่างถูกต้องโดยการอ้างอิง สิ่งนี้เลิกใช้แล้วใน PHP เวอร์ชัน 5.4 เมื่อคุณใช้เพื่อคำนวณ(&$a); มันเกิดข้อผิดพลาด
ตัวอย่าง
มาทดสอบตัวอย่างกันเพื่อทำความเข้าใจผ่านค่า
<?php function calculate($a){ $a++; echo $a."<br/>"; } $a=5; calculate($a); echo $a; ?>
ผลลัพธ์
6 5
คำอธิบาย
ที่นี่เราได้ส่งค่าไปยังฟังก์ชัน คำนวณ () ผ่านค่า ค่าของมันถูกเปลี่ยนแปลงภายในฟังก์ชันแต่จะไม่สะท้อนออกมาภายนอกฟังก์ชัน ค่าของตัวแปรยังคงเหมือนเดิมนอกฟังก์ชัน