ข้อความแจ้ง Error
Fatal error: Call-time pass-by-reference has been removed in classes\module\Module.php(1030) : eval()'d code on line 203
ปัญหาเพราะ มีการเรียกใช้งาน function แบบ pass-by reference ซึ่ง ใน php 5.4 ได้ยกเลิกไปแล้ว
ทางแก้คือ เราต้องสร้าง function แล้วระบุเป็น pass-by reference ไว้ก่อน แล้วเรียกใช้งาน ปกติ ตัวแปลที่เป็น pass-by reference ก็จะถูกเก็บค่าไว้ใช้งานเอง
ให้แทน function getUrlForPathCategory เพิ่ม & ไว้หน้า parameter ตัวที่ต้องการกำหนด เป็น pass-by reference เช่นตัวอย่างนี้คือ $path
โค้ด: เลือกทั้งหมด
function getUrlForPathCategory($id, &$path) {
global $cookie;
$cat = new Category($id);
if ($cat->id_parent == 1) {
$path = $cat->link_rewrite[$cookie->__get('id_lang')];
}
else {
$this->getUrlForPathCategory($cat->id_parent, $path);
$path .= '/'.$cat->link_rewrite[$cookie->__get('id_lang')];
}
}