หากว่าบางครั้งเราอ้างอิงตัวแปรมาแบบไม่รู้ชื่อของมันตรงๆ เพราะมันอ้างอิงมาจาก Function อื่น หรือเราต้องการเขียน Function ที่นำเข้าตัวแปรมาแล้วต้องการแสดงชื่อตัวแปรนั้นๆไว้ด้วยเนี่ยจะวุ่นไปอีกแบบ แล้วก็แปลกอยู่อีกว่า PHP ก็ไม่มีฟังก์ชั่นแบบนี้ให้โดยตรง ทั้งที่น่าจะได้ใช้บ่อยอยู่
จนกระทั่งมีคนหัวใสเค้าหาวิธีไปเอาชื่อมันมาทางอ้อมด้วยการใช้ foreach ที่อ้างอิงแบบ $key=>$value ไปวนลูปเทียบดูในตัวแปรของระบบที่ชื่อ $GLOBALS เทียบดูว่าตัวแปรไหนมันมีค่าเหมือนกันกับที่เรากำลังอยากได้ชื่อเป๊ะๆ (ที่ว่าเป๊ะๆเค้าก็เลยใช้ operator พิเศษเป็นเครื่องหมายเท่ากับเรียงต่อกันสามตัว หากพบก็นำเอาค่าออกมาแล้ว RETURN ออกมาใช้
เท่าที่เห็นมามีคนเขียนฟังก์ชั่นตามคอนเซ็ปต์ที่ว่านี้อยู่หลายแบบ แต่แบบที่แสดงอยู่นี้คุณ Jeremy Ruten เค้าตอบเอาไว้ใน stackoverflow เป็นฟังก์ชั่นที่ดูสั้นและเข้าใจง่ายแบบ clean code ครับเลยนำมาฝากพร้อม reference url เรียบร้อย สงสัยก็ไปค้นกันต่อได้
1 2 3 4 5 6 7 | <?php function getvarname($var) { foreach($GLOBALS as $var_name => $value) if ($value === $var) return $var_name; return false; } ?> |
reference : How to get a variable name as a string in PHP?
url : https://stackoverflow.com/questions/255312/how-to-get-a-variable-name-as-a-string-in-php
0 ความคิดเห็น