Error strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior” Pada codeigniter versi 3.x dan PHP 7
Saya merasa bahwa bekerja dengan konsep hirarki model view controller atau hmvc sangat membantu banget dalam pekerjaan tim dan pengelompokan progres project setiap harinya. Tetapi itu semua berubah ketika ada yang mengganjal sedikit yaitu kesalahan manakala setelah melakukan upgrade php 7 dan codeigniter versi 3.x.
Saya bingung kok ada informasi kesalahan yang keluar pada browser saya seperti ini.
strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior
Ternyata setelah saya telusuri dan mencari info kesana kemari, itu disebabkan oleh adanya sensitifitas pada php7 dan mengharuskan untuk menambahkan operator and variabel $suffix pada logika di public function set_class
Untuk caranya silahkan buka
1. folder application->third_party->MX->Router.php
2. cari kode public function set_class. kalau kamu menggunakan visual studio kode cukup tekan CTRL+F yaitu seach data akan langsung mengarah ke tujuannya. silahkan amati kode bawaan dari codeigniter dibawah ini :
public function set_class($class) { $suffix = $this->config->item('controller_suffix'); if (strpos($class, $suffix) === FALSE) //kode lama dan error dari ci { $class .= $suffix; } parent::set_class($class); }
3. Kemudian anda rubah kodenya menjadi seperti ini
public function set_class($class) { $suffix = $this->config->item('controller_suffix'); if( $suffix && strpos($class, $suffix) === FALSE) //kode perubahan yang benar { $class .= $suffix; } parent::set_class($class); }
anda cukup menambahkan di dalam kode di dalam struktur logikanya dengan $suffix && strpos
Sekarang coba jalankan pada browser anda. semoga ini tidak error.
Join the conversation