Thursday 19 July 2012

Why is `ereg` deprecated in PHP ?


การใช้งาน ereg() ใน PHP

ผมคิดว่าหลายๆคนที่เขียน PHP แล้วเจอกับปัญหา "ereg() is deprecated" (ใน PHP version 5.3.0 เป็นต้นไป) น่าจะเกิดความสงสัย (เหมือนกับผม) ว่าทำไมถึง deprecated

สาเหตุที่ PHP ตัดสินใจเลิกใช้งาน ereg() เพราะว่าอยากจะให้ใช้ PCRE (Pearl Compatible Regular Expression) Extensions แทน เพราะว่าโดยทั่วไปจะมีประสิทธิภาพที่ดีกว่า (แต่ไม่เสมอไป ในบาง function ereg() ก็สามารถทำงานได้เร็วกว่า) ยกตัวอย่างเช่น function preg_match() ซึ่งใช้ PCRE syntax จะทำงานได้เร็วกว่า function ereg() สำหรับในบาง post ก็พูดถึงสาเหตุของการที่ PHP ยกเลิกใช้งาน ereg() ว่าเป็นเพราะใน PHP 6.0 ได้มีการพัฒนาในส่วนของการรองรับ Unicode ขึ้นมาใหม่ ซึ่งน่าจะเป็นสาเหตุหลักที่ทำให้ ereg() ไม่สามารถใช้งานได้

สำหรับ PHP  ตั้งแต่ version 6.0 เป็นต้นไป ได้ตัด function ereg() ออกไปเป็นที่เรียบร้อยแล้วนะครับ ถ้าหากว่าใครที่มีแนวโน้มว่าจะต้อง upgrade ไปใช้ PHP 6.0 ควรหลีกเลี่ยงการใช้งาน ereg() นะครับ

แหล่งที่มา:
  1. http://stackoverflow.com/questions/3078993/why-is-ereg-deprecated-in-php
  2. http://stackoverflow.com/questions/1361591/php-ereg-vs-preg

No comments:

Post a Comment