PHP yanılma yöntemi getiri> kullanamazsınız

3 Cevap php

Ben bir PHP sınıfı bu hatayı alıyorum ...

Fatal error: Can't use method return value in write context in C:\webserver\htdocs\friendproject2\includes\classes\User.class.php on line 35

İşte sorunlu bir parçasıdır.

if(isset($this->session->get('user_id')) && $this->session->get('user_id') != ''){
    //run code
}

Bu kod, benim contrustor olan bir değeri zaten $ için ayarlı değil bu-> session-> sonra yerine sayısı return false ('User_id') olsun. Gördüğünüz gibi Yani ben bu değer bir sayı ya da değil ya bile ayarlanmış olup olmadığını kontrol etmek için umuyordum.

Sabitleme ile herhangi bir yardım takdir.

3 Cevap

Sen bir fonksiyonun sonucu için isset kullanamazsınız. Yerine aşağıdaki kodu göz önünde bulundurun:

if( $this->session->get('user_id') ){
    //run code
}

isset() only works with variables as passing anything else will result in a parse error. For checking if constants are set use the defined() function.

Dan PHP Manual.

Bir fonksiyonu isset kullanamazsınız. Ancak, beri false, 0, ve '' tüm test bu şekilde yazmak, bir falsey açıklamada eşit:

if( $id = $this->sessions->get('user_id') ){
   // Will only run if $id does not equal '', False, or 0
}

Eğer testi çalıştırmak bu şekilde and tek adımda değişken atanır.