คีย์เวิร์ด 'use' สามารถใช้เพื่อผูกตัวแปรเข้าไปในขอบเขตของฟังก์ชันเฉพาะนั้น
ใช้คีย์เวิร์ด use เพื่อผูกตัวแปรเข้าไปในขอบเขตของฟังก์ชัน:
ตัวอย่าง
<?php $message = 'hello there'; $example = function () { var_dump($message); }; $example(); $example = function () use ($message) { // สืบทอด $message var_dump($message); }; $example(); // ค่าของตัวแปรที่สืบทอดมาจากตอนที่ฟังก์ชันถูกกำหนด ไม่ใช่ตอนเรียก $message = 'Inherited value'; $example(); $message = 'reset to hello'; // รีเซ็ต message $example = function () use (&$message) { // สืบทอดแบบ reference var_dump($message); }; $example(); // ค่าที่เปลี่ยนในขอบเขตพาเรนต์ // สะท้อนภายในการเรียกฟังก์ชัน $message = 'change reflected in parent scope'; $example(); $example("hello message"); ?>ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
NULL string(11) "hello there" string(11) "hello there" string(14) "reset to hello" string(32) "change reflected in parent scope" string(32) "change reflected in parent scope"
ต้นฉบับ ฟังก์ชัน 'example' ถูกเรียกครั้งแรก ครั้งที่สอง $message ถูกสืบทอด และค่าเปลี่ยนเมื่อฟังก์ชันถูกกำหนด ค่า $message ถูกรีเซ็ตและสืบทอดอีกครั้ง เนื่องจากค่าเปลี่ยนในขอบเขตราก/พาเรนต์ การเปลี่ยนแปลงสะท้อนเมื่อฟังก์ชันถูกเรียก