Server’da PHP sürümümü 5.3.x’ten 5.5.x’e yükseltmemden sonra sitelerimde aldığım hatalardan biri de “strict standards – only variables should be passed by reference error” hatasıydı. Bu hata, değişken göndermeniz gereken yere başka birşey göndermenizden kaynaklanmakta.
PHP 5.5 sürümünden önce kullanıdığım kod şu şekildeydi;
$ilk_kelime = current(explode("/", $metin));
Fakat PHP’nin yeni sürümünde bu kod hata vermekte, çünkü explode işlemi bir array dizi döndürüyor. Fakat kendisi bir değişken değil. Aynı şekilde kodumuz, current(array("bir","iki","üç"));
şeklinde olsaydı da aynı hatayı alacaktık. current, end gibi fonksiyonlar, bir değişken ile işlem yapabiliyor. Dolayısıyla bu gibi fonksiyonların içerisine bir değişken göndermemiz gerekli.
Sonuç olaraqk kodumuzu aşağıdaki gibi düzenleyebiliriz.
$metin_array = explode("/", $metin);
$ilk_kelime = current($metin_array);
Yukarıdaki kodda, explode işleminin sonucunu bir değişkene atıp, current fonksiyonu içerisinde bu değişkeni kullanarak sorunu çözmüş olduk.
Yazı Ne Hakkında : code, coding, current, developer, end, error, hata, PHP, strict standards, web dersleri
Error thrown
Call to a member function id() on array