การใช้งาน use ใน php สำหรับ reference global variable

การ refernce global variable ใน anonymous function
ก่อนหน้านี้ได้มีบทความเกี่ยวกับประเภทของตัวแปรใน JavaScriptแล้วก็ได้พูดถึง global variable ใน php นิดหน่อยเลยติดลมเอามาเขียนเป็นบทความนี้ซึ่งจะพูดถึงการ refernce ถึง global variable ใน anonymous function ซึ่งอาจเป็น syntax ที่แปลกตาแต่ก็น่าจะเป็นประโยชน์พอสมควรทีเดียว

และถ้าใครยังไม่รู้จักการใช้งาน anonymous function ใน PHP มาแล้วไปตามอ่านใน blog แล้วกันนะ ปัญหาถัดมาก็คือใน anonymous function จะไม่สามารถที่จะเรียกใช้งานตัวแปรที่อยู่นอก function ของมันได้ จริงๆก็ไม่ใช่เฉพาะ anonymous function เท่านั้น function ธรรมดาก็เป็น ซึ่งถ้าเป็น function ธรรมดาก็จะ ใช้ keyword global ในการ reference ถึง global variable แบบนี้

1
2
3
4
5
6
7
$name = "www.irobust.co.th";
function foo(){
     global $name;
     echo $name;
}

foo();

ก็จะได้ผลลัพธ์แบบเดียวกับที่ได้ใน code ด้านล่าง

1
2
3
4
5
6
$name = "www.irobust.co.th";
$fn = function() use($name){
     echo $name;
};

$fn();

ในรูปจะเป็นการ refernce ถึง global variable ใน anonymous function ซึ่งการใช้ use จะทำให้ให้เราสามารถระบุ refernce ถึงตัวแปรที่อยู่ข้างนอก ลักษณะเหมือนกับการกำหนด global เหมือน code ด้านบน แต่การเขียนโดยใช้ use จะอ่านง่ายและเข้าใจได้มากมากกว่า