error Call-time pass-by-reference has been deprecated

error Call-time pass-by-reference has been deprecated

Call-time pass-by-reference has been deprecated เราจะเจอ เมื่อมีการเขียนโค้ด โดยการส่งค่าเข้า function ในแบบที่เป็นการอ้างอิงเข้าไป เช่น foobar(&$var);

ก็คือว่า สิ่งที่จะยอมให้ส่งเข้าไปใน function ได้ ประกอบไปด้วย ตัวแปร $s หรือ new statement เช่น newfoo(new foobar())

สำหรับข้อความ error ดังกล่าว เราจะเจอใน PHP 5.3.0 ขึ้นไป ซึ่งการแก้ไข บางคนเลือกที่จะแก้ใน PHP.INI แต่ผมว่ามันไม่ใช่ครับ แก้ที่สาเหตุดีกว่า หรือบางครั้ง server เราก็ไม่ได้เป็นคน config เราก็ไม่สามารถแก้ไข php.ini ได้

สำหรับการแก้ไขง่ายมากเลย จากเดิม เราใช้ foobar(&$variable) เราก็เปลี่ยนใหม่เป็น

$xtmp = &$variable; foobar($xtmp);

แค่นี้เองครับ ไม่ต้องแก้ php.ini เลย แต่ถ้าอยากถึก แก้ที่ php.ini ให้ตั้งค่า allow_call_time_pass_reference เป็น true เท่านี้ก็เรียบร้อยครับ

Create: Modify : 2010-08-04 10:11:36 Read : 4058 URL :