‘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! )

  • ben bu hatayı kullanıcı girişinde alıyorum. yerelde çalışan giriş server a attığım zaman bu şekilde hata veriyor ve kullanıcı girişi yapmıyor. kullanıcı adında / karakteri olmadığı için de explode boş döndürüyor o şekilde de hata veriyor. yardımcı olabilir misiniz acaba?

  • kullanıcı adını bi değişkene ata, explode işleminden hemen önce if sorgusuyla kullanıcı adı değişkenini kontrol et sonra explode işlemi uygula. ozaman sorunun çözülmüş olur diye düşünüyorum.

    gibi kullanabilirsin

  • $this->_selfLink = array_shift( explode( ‘?’, $_SERVER[‘REQUEST_URI’] ) ) . ‘?page=’ . $this->_page;

    aynı hatayı bu satırda alıyorum. nasıl bir düzeltme yapılması gerekir.

    • Aynı şekilde explode fonksiyonundan dönen değeri bir değişkene atıp kullanman gerekli.

      Bu şekilde kullandığında hata vermemesi lazım..


Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

En Komik Tv Facebook Sayfası Yok Artık Facebook Sayfası