PHP Sınıf Değişken sorun

3 Cevap php

Ben bu sınıf vardır:

class TestClass
{
    var $testvar;
    public function __construct()
    {
    	$this->$testvar = "Hullo";
    	echo($this->$testvar);
    }
}

Ve erişmek için bu yöntem:

function getCurrent()
{
    $gen = new TestClass();
}

Ben şu hatayı alıyorum:

Notice: Undefined variable: testvar in /Users/myuser/Sites/codebase/functions.php on line 28
Fatal error: Cannot access empty property in /Users/myuser/Sites/codebase/functions.php on line 28

Ne oluyor?

3 Cevap

Bunun için çağrı testvar önce $ kaldırın:

$this->testvar = "Hullo";
echo($this->testvar);

Eğer değişken eriştiğinizde değişken başvuru kullanmanız gerekmez:

$this->testvar;

Ile $this->$testvar, PHP komut ilk $testvar, o adı ile sınıfında bir değişken bulmak için bakacağız. yani

$testvar = 'myvar';
$this->$testvar == $this->myvar;

var önerilmiyor beri özel, kamu veya korumalı biri olarak ilan etmek öneririm.

class TestClass
{
    protected $testvar;
    public function __construct()
    {
        $this->testvar = "Hullo";
        echo $this->testvar;
    }
}