2016-07-11 20 views
1

dieser Struktur folgend:Zugriff auf eine Funktion Variable in einem Objekt von außen

class MyClass(){ 
    var prop; 

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

$obj = new MyClass; 

Gibt es eine Möglichkeit i ‚$ Variable‘ ohne Rückkehr von außen zugreifen kann?

kann ich eine Unterkunft wie diese:

$obj -> prop; 

, aber ich kann die '$ variable' wie diese nicht zugreifen:

$obj -> variable; 
+1

Variable existiert nicht in Ihrer Klasse verwenden können, existiert nur in Ihrer Methode. Sie müssen Variablen in der Klasse deklarieren. Und Sie sollten Variable mit Zugriffs-Spezifizierern deklarieren: protected $ variable; –

+0

@ M.I. , also muss ich es nur zur Immobilie machen? es gibt keine Möglichkeit, dass ich einfach so darauf zugreifen kann? –

+1

Die Verwendung von 'var' zum Deklarieren von Klasseneigenschaften wurde seit Jahren nicht mehr verwendet [Werfen Sie einen kurzen Blick auf das Handbuch] (http://php.net/manual/en/language.oop5.properties.php) und finden Sie eine mehr aktuelles Tutorial – RiggsFolly

Antwort

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

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

mit var innerhalb der Klasse wird nicht empfohlen. statt dass Sie öffentlichen

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

Ich stimme zu .. hier und da Syntaxfehler. Erstellt eine Arbeitskopie https://gist.github.com/pssubashps/a48b06b3f421563d2b6b0b0bac78ce80 – Subash

1

Für den Zugriff auf Ihre Variable wie

$obj -> variable; 

Sie müssen Folgendes machen:

class MyClass(){ 
    var prop; 
    var variable;  

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

Es mag erwähnenswert sein, dass 'var $ variable;' dasselbe ist wie 'public $ variable; '. Und nicht etwas, das wir normalerweise haben wollen, da es von jedem geändert werden kann; -/ –

Verwandte Themen