วิธีแก้ PHP Notice Use of undefined constant

Notice: Use of undefined constant fl_name - assumed 'fl_name' in F:\xampp\htdocs\_ath\download-manage.php on line 28
Notice: Use of undefined constant fl_desc - assumed 'fl_desc' in F:\xampp\htdocs\_ath\download-manage.php on line 29
Notice: Use of undefined constant fl_type - assumed 'fl_type' in F:\xampp\htdocs\_ath\download-manage.php on line 32
Error ด้านบนนี้เป็นจะขึ้นก็ต่อเมื่อเราเปิด error_reporting เป็นแบบ
error_reporting(E_ALL ^ E_NOTICE);

โดนมันจะแจ้งเตือนเราว่า ค่าตัวแปรที่คุณกำหนด มันยังไม่ถูกต้องนะ หรือมันอาจจะผิดรูปแบบ คุณควรจะใส่แบบนี้ (แบบมี '...' คั่น)


เท่าที่ผมเข้าใจนะ การใส่กับไม่ใส่ ข้อแตกต่างมันอยู่ตรงที่ ชื่อของตัวแปรที่เราตั้ง การที่เราไม่ใส่ "" ฟันหนู มันจะทำให้ระบบต้องค้นหา index อื่นที่ไม่ใช่ตัวแปร เช่นตัวแปรที่เป็น static หรือ constant ค่าคงที่ต่างๆ อาทิเช่น __FILE__, __DIR___, PHP_SELF, PHP_EOL เป็นต้น

ทีนี้หากเราไม่ได้เขียนแบบถูกต้องมาแต่ต้อง การเป็นงานช้างเลยละที่จะกลับมาแก้ไข เพราะเราต้องตามมาใส่ ' ' ทุกๆ ตัวแปรที่เรากำหนดด้วย $_POST, $_REQUEST, $_SERVER, $_SESSION เป็นต้น หรือกระทั่ง array ที่ใช้แบบนี้ $array[...] ก็จะเป็นต้นใส่ครับ เพราะมันจะได้เป็นป็น string แทนที่จะเป็น static value

วิธีที่ผมใช้บ่อยๆ ก็คือใช้ Regular Explessions ในการตรวจสอบและปรับปรุงตัวแปรเหล่านั้น ในที่นี้ผมจะให้ตัวอย่างของ NetBean  ไปใช้นะครับ ส่วนโปรแกรมอื่น อาทิ dreamweaver, editplus, notepad++ ก็น่าจะใช้ได้เหมือนกัน (ใน dreamweaver สามารถ save เก็บไว้ได้ด้วยนะครับ)

ตัวอย่าง
Find:  
\$\_([A-Z]+)\[([a-zA-Z_]+)\]
Replace: 
\$_$1['$2']


ป้ายกำกับ: , , , ,