2016-08-18 5 views
-1

ich, dass diese Arbeit fand heraus zu verwenden:Ist es eine gute Praxis außerhalb Variablen in Methoden

$var = 'value'; 

$obj = new myClass(); 

class myClass{ 
    function __construct(){ 
    $this->myFunc($var); 
    } 
    public function myFunc($var){ 
    echo $var; 
    } 
} 

Aber ist es eine gute pratice? Oder sollte ich es einfach so machen?

$var = 'value'; 

$obj = new myClass($var); 

class myClass{ 

    public $var; 

    function __construct($var){ 
    $this->var = $var; 
    $this->myFunc($this->var); 
    } 

    public function myFunc($var){ 
    echo $var; 
    } 
} 

Oder, wenn beide verwendet werden können, wenn es empfohlen wird, die eine und die andere zu verwenden? Gibt es auch eine gute Website, Blog, Thema, Tutorial über Best Practices für PHP einschließlich oop?

EDIT: Scheint, wie Variablen nicht ausgibt der Wert, aber nicht geben eine Fehler neither.My Anfangscode verwenden Konstanten und ich dachte, es auch mit Variablen arbeiten würde:

define('blabla','value'); 

$obj = new myClass(); 

    class myClass{ 
     function __construct(){ 
     $this->myFunc(blabla); 
     } 
     public function myFunc($var){ 
     echo $var; 
     } 
    } 
+0

http://www.phptherightway.com/ für die Ressourcen, über PHP und OOP zu übergeben. Der zweite Weg ist viel besser als der erste, weil man es lesen kann, ohne zu denken. Der erste Weg, könnte schneller ausgeführt werden, so kommt es darauf an, was Sie wollen. Und ich bin sicher, du könntest einen dritten Weg finden, noch schneller. – Unex

+0

@Unex, ich habe diese Website gelesen, dort habe ich den 2. Weg gefunden, aber es sagt nicht, warum ich keine anderen Möglichkeiten dafür nutzen sollte.Ich denke auch, dass die erste Lösung schneller funktioniert, deshalb wollte ich hören einige Vor- und Nachteile –

+2

Ihr erstes Beispiel funktioniert nicht. – Progrock

Antwort

0

Sie sollten versuche so etwas.

$myVar = 'myvalue'; 

class myClass { 
    private $class_var; 

    public function __construct($myVar) { 
    $this->class_var=$myVar; 
    } 

    //REST OF CLASS BELOW 
} 

Also, wenn das Objekt deklarieren, müssen Sie $ myVar

$myClass = new myClass($myVar); 
+0

In Ordnung, aber warum sollte ich nicht die erste Lösung verwenden, wenn es funktioniert? Auch weniger zu schreiben ... –

+1

Weil PHP sich sehr verändert und in kommenden Versionen könnte dies veraltet sein. –

+0

Vik, ja, aber das gilt auch für deine Lösung ... das liegt nicht an uns, was in den kommenden Versionen veraltet sein wird. –

Verwandte Themen