Bir sınıf değişkeni kurmaya çalışırken neden bu hatayı alıyorum

2 Cevap php

Ben belki burada bir şey bakan ama takip ediyorum PHP için yeni kulüpler:

class someClass {

    var $id = $_GET['id'];

    function sayHello() {

        echo "Hello";

    }

}

aşağıdaki hatayı veriyor:

Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\files\classes.php on line 13

Eğer yerine $ _GET ['id'] Ben bir dize değişkeni $ id set, her şey rağmen gayet iyi.

2 Cevap

Bir kurucu kullanarak olmadan bu şekilde bir sınıf üyesine sabitleri dışında bir şey atanamıyor.

Bkz the manual:

[bir mülkün] beyanı bir başlatma içerebilir, but this initialization must be a constant value - yani, bu derleme zamanında değerlendirilmesi gerekir ve değerlendirilmesi amacıyla çalışma zamanı bilgileri bağlı olmamalıdır.

Bunu yapmanın alternatif bir yöntem to use a constructor değerini ayarlamak için:

class someClass {

    var $id;

    public function __construct(){
        $this->id = $_GET['id'];
    }

    function sayHello() {
        echo "Hello";
    }
}

Siz bir kurucu sizin değişken atamak gerekir

class someClass {

    function __construct() {
        $this->id = $_GET['id'];
    }

}