2016-07-11 163 views
1

按照這個結構對象內的函數變量:訪問外部

class MyClass(){ 
    var prop; 

    function myfunc(){ 
     $variable = 'value'; 
    } 
} 

$obj = new MyClass; 

有沒有一種方法,我可以訪問來自外部的「$變量」沒有回報?

我能得到這樣的特性:

$obj -> prop; 

,但我不能訪問 '$變量' 是這樣的:

$obj -> variable; 
+1

變量的類不存在,存在的只是在你的方法。你需要在類中聲明變量。你應該使用訪問指定符聲明變量: protected $ variable; –

+0

@ M.I。 ,所以我只需要讓它成爲一個物業?我無法像這樣訪問它嗎? –

+1

使用'var'聲明類屬性多年來一直沒有使用[請快速瀏覽手冊](http://php.net/manual/en/language.oop5.properties.php)並找到更多最新教程 – RiggsFolly

回答

2
class MyClass(){ 
    public prop; 
    public variable;  

    function myfunc(){ 
     $this->variable = 'value'; 
    } 
} 

不建議在類中使用var。取而代之的是,你可以使用公共

$obj -> variable; now you can access this from out side the class scope 
+0

我同意..在這裏和那裏的語法錯誤。創建了一個工作副本https://gist.github.com/pssubashps/a48b06b3f421563d2b6b0b0bac78ce80 – Subash

1

要訪問您的變量像

$obj -> variable; 

您需要做的是這樣:

class MyClass(){ 
    var prop; 
    var variable;  

    function myfunc(){ 
     $this->variable = 'value'; 
    } 
} 
+1

值得一提的是,'var $ variable;'和'public $ variable;'是一樣的。而不是我們想要的正常,因爲它可以由每個人修改; -/ –