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

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 เท่านี้ก็เรียบร้อยครับ

[PRINT VERSION] เขียน: 2010-08-04 10:11:36 แก้ไข : 2010-08-04 10:11:36 อ่าน : 1819
tag : Call-time pass-by-reference, Call-time pass-by-reference has been deprecated, allow_call_time_pass_reference

Comment

Comment
BeYourCyber - 04/08/2010 09:11:36 -
ร่วมพูดคุยในหัวข้อของบทความ error Call-time pass-by-reference has been deprecated
เมื่อเจอ error Call-time pass-by-reference has been deprecated ไม่ต้องตกใจ แก้ไขได้ไม่ยาก