php klassen frage zu private public

  • Das ist dazu gedacht, den zugriff, also das ausführen oder lesen/beschreiben von Variablen auserhalb der Classe zu verhindern oder zu gestatten.


    Public beduetet, das die Funktion oder variable überall im skript abgefufen werden kann z.B mit $class->wert; oder $class->start();


    Bei mit protected deklarierten variablen oder funktionen, funktioniert dies nicht. Die können nur innerhalb der Klasse benutzt werden.


    Greetz TimTim

  • Zitat von "timtim"

    Die können nur innerhalb der Klasse benutzt werden.


    Greetz TimTim

    ist damit gemeint das diese variablen(atributte) dann schon vorgegeben sind und nich um definiert werden können?

  • Ehm, nicht direckt.


    Man kann also nicht


    Code
    $class->variable = 10;


    machen, da würde ein fehler rauskommen.


    Aber man könnte es in einer funktion setzen.


    Code
    public function set_var($wert){
    
    
    
    
    $this->variable = $wert
    return;
    }
  • Das ist nacher eine ganz andere sache =).


    Wenn es dann mal um OOP geht, will man sich keine gedanken darum machen, ob jemand ausversehen, Variablen oder funktionen überschreibt, oder sie zufällig setzt.


    Bei einem richtigen Software design geht es nicht darum, das das Programm so einfach wie möglich funktioniert, sondern sicher. Und der code, bleibt weiterhin leicht erweiterbar.


    Greetz TimTim

  • aber wenn ich Zugriff zum quelcode habe kann ich die variablen auf beiden arten setzten hab ich keinen Zugriff dazu kann ich es garnicht ändern. Was ist dabei der Unterschied?

  • Tja, das ist ne ganz andere logig. Dabei geht es nicht darum einen schutz zu erzeugen, das jemand böswillig zugriff auf funktiontn und variablen hat. Sondern es geht einfach darum, das der nächste programmierer weis, was er benutzen / setzen darf, und was davon ihn nicht zu interessieren hat. Classen zu verwenden, und OOP bringt nacher nur wirklich mehr, wenn man mit mehreren leuten arbeitet. Dann können die anhand von public sehen, das sie diese funktionen nutzen können, bzw das darüber eben eine schnitstelle zur klasse gegeben ist. Wenn eine Classe eben z.B zählervariablen für ne schleife hat, welche in der Classe aufgerufen wird. Braucht darauf kein anderer code drauf zugreifen, weil das eben eine private sache der Klasse ist.


    Man sollte sich vielleicht einfach mal ein wenig in OOP einlesen, gibt da viele tutoriale. Und es ist programmiersprachen übergreifend.


    Greetz TimTim

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!