Wednesday, June 7, 2017

Cara mengatasi error "Only variable references should be returned by reference" di codeigniter 2.x.x

Cara mengatasi error "Only variable references should be returned by reference" di codeigniter 2.x.x

Pada pembahasan kali ini saya akan membahas seputar error yang saya pernah alami ketika saya menggunaka codeigniter versi 2 dan php 5.6 atau php portable. Error ini bukanlah error yang terlalu rumit. Masalahnya berasal dari sebuah return yang terdapat pada file core codeigniter itu sendiri yaitu common.php.

A PHP Error was encountered

Severity: Notice

Message: Only variable references should be returned by reference

Filename: core/Common.php

Line Number: 257

Saya membahas topik ini karena saya banyak sekali menerima keluhan tentang error ini, terutama pada projek buku yang saya garap tahun 2014. Buku itu bertemakan seputar programming dengan judul cara membuat shopping cart sederhana, kurang lebih itu judunya. Disana, untuk source nya sendiri saya masih memakai PHP 5.4 dan Codeigniter 2.2.x yang dikala itu merupakan source terbaru. Tapi banyak orang yang mempraktekan buku terebut di versi PHP yang lebih tinggi, sepertinya. Akibatnya terjadilah error seperti yang ada di atas.

Nah untuk mencerahkannya, disini saya akan membahas cara menanggulanginya, atau bahasa kerennya yaitu "Trouble Solving" :D

Jika membaca pesan error diatas, error itu sendiri di akibatkan karena hasil return data bukanlah berupa variabel, jadi solusinya ialah hasil return datanya harus berupa variabel.

Jika kamu kurang yakin mari kita buktikan, cobalah buka file system/core/common.php lalu lihat pada baris 257.

return $_config[0] =& $config;

Dan terbukti benar, nilai yang di returnnya bukanlah berupa variabel. Nah untuk masalah ini cukuplah mudah untuk membetulkannya. Silahkan ubah kode di atas menjadi seperti ini

$_config[0] =& $config;
return $_config[0]; 

Dan dengan ini kelar masalahnya.

Mungkin pembahasan kali ini saya cukupkan sampai disini, semonga bermanfaat, terima kasih.

Saya hanya seorang "newbie" yang baru bisa ngoding lohor kemarin.


EmoticonEmoticon