‘strict standards – only variables should be passed by reference error’ hatası

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.

4 Adet Yorum Yapıladı ( Sende Yorum Yaz! )

    Error thrown

    Call to a member function id() on array