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 เท่านี้ก็เรียบร้อยครับ
tag : Call-time pass-by-reference, Call-time pass-by-reference has been deprecated, allow_call_time_pass_reference
