Ergebnis 1 bis 9 von 9

Thema: PHP Objektorientiert: this->... und var $varbaible - Frage

  1. #1
    Großmeister(in) Avatar von Darkxor
    Registriert seit
    17.11.2007
    Ort
    NRW
    Beiträge
    663
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard PHP Objektorientiert: this->... und var $varbaible - Frage

    Hallo,
    um mein objektorientiertes Wissen zu festigen habe ich mich an ein
    Tutorial gesetzt und habe nun 2 Fragen welche dort noch nicht benatwortet
    werden.

    http://www.php-kurs.com/objektorient...g-beispiel.htm
    Ausschnitt:
    Code:
    class auto
    {
    
        // eine Eigenschaft/Attribut festlegen
        var $benoetigter_kraftstoff;
    Muss man immer var schreiben, normalerweise brauchte man dies ja
    in PHP noch nicht. Beispiels ($apfel = 1; oder $apfel++;...)

    Code:
            // Anzahl der betankungen wird um 1 erweitert
            $this->anzahl_betankungen++;
    Und dann wollte ich noch grahen wofür das $this-> Benötogt wird,
    normalerweise habe ich wie oben schon in der Variable nur $apfel++; geschrieben.

    Wäre dankbar für eine kurze Erklärung
    Danke
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    -

  2. #2
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    zu den variablen:

    normalerweise muss in jeder sprache jede variable definiert werden.
    meistens sogar mit typ. in visual basic ises dann z.b.
    Code:
    DIM strText as String
    DIM intZahl as Integer
    DIM bolWert as Boolean
    PHP macht da scheinbar eine ausnahme und stellt die variable sofort zur verfügung.
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  3. #3
    Großmeister(in)
    Themenstarter
    Avatar von Darkxor
    Registriert seit
    17.11.2007
    Ort
    NRW
    Beiträge
    663
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Hallo, das kenne ich also macht es in dem Sinne kein Unterschied ob
    mit var oder nicht davor?

    Dachte das es durch das Objektorientierte vielleicht sein muss, da
    es ja in einer Klasse ist. Die Funktionen heißen da ja auch Methoden
    und die Variablen Eigenschaften ^^
    -

  4. #4
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Du setzt in der objektorientierung in php5 eigentlich kein var davor, sondern private, protected oder public, genau wie auch bei den Funktionen einer Klasse.
    Private heißt die Variable/Funktion ist nur innerhalb der eigenen Klasse verfügbar.
    Protected heißt die Variable/Funktion ist nur in der eigenen Klasse und in Mutter-/Tochter-Klassen verfügbar.
    Public heißt die Variable/Funktion ist auch außerhalb der Klasse verfügbar (natürlich mit Referenzierung auf das entsprechende Objekt).

    z.B.
    PHP-Code:
    class auto {
        private 
    $kmh;
        ...
        public 
    getZeit($entfernung) {
            ...
        }

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  5. #5
    Kaiserliche Hoheit Avatar von No0ob
    Registriert seit
    02.01.2006
    Ort
    Nähe Frankfurt
    Beiträge
    1.500
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Das var bedeutet dass dies eine Objektvariable ist, also später mittels $this->blah zugänglich ist.
    In PHP gab es keine unterschiedlichen Sichtbarkeiten, jede Funktion und Variable ist dort public. Es gibt also kein private / public / protected, aber nur var (in PHP4).
    Dies wurde in PHP5 erweitert.

  6. #6
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Die Variable $benoetigter_kraftstoff wird weder nur für die Funktion noch global sondern auf Objekt-Ebene gespeichert. Sie ist ein Element des Objekts, z.B.:
    PHP-Code:
    $t = new TestClass();
    $t->benoetigter_kraftstoff 'hallo'
    Deshalb muss zuvor das Objekt angegeben werden. Wird nun eine nicht-statische Element-Funktion aufgerufen (deine Funktion), so wird $this automatisch mit dem Objekt verknüpft, auf dem die Funktion aufgerufen wurde.
    PHP-Code:
    class TestClass
    {
    public function 
    test()
    {
      echo 
    '$this ist $test';
    }
    }
    $test = new TestClass();
    $test->test(); 
    In anderen Sprachen wird bei weggelassenem this, self oder ähnlichem oft automatisch das Objekt-Element verwendet. In PHP ist dies jedoch nicht der Fall. Du musst stets zwischen Klassenelement und lokaler Variable unterscheiden. Das hat sicherlich mit der Kompatiblität zu normalen Funktionen zu tun:
    PHP-Code:
    function nonOOP() { $a 12; ++$a; echo $a; }
    class 
    OOP
    {
    protected 
    $a;
    public function 
    test() { $a 12; ++$a; echo $a; }

    Gäbe es nun die automatische Verwendung von Klassenelementen in PHP, so würde die Funktion unwillentlich nach der Portierung zur OOP die objekt-interne Variable bearbeiten. In anderen Sprachen ist dies ausgeschlossen, da die Variable zuvor lokal deklariert werden müsste.

    Viele liebe Grüße
    The User

  7. #7
    Großmeister(in)
    Themenstarter
    Avatar von Darkxor
    Registriert seit
    17.11.2007
    Ort
    NRW
    Beiträge
    663
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Danke nun habe ich es verstanden.

    Kurz gefasst braucht man das $this-> also um Eigenschaften auf
    ein Objekt dynamisch zu beziehen und mit var leitet man diese
    Eigenschaften so ein und definiert sozusagen das es OOP ist.

    Ist $this-> ... demnach der Konstruktor?
    -

  8. #8
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Zitat Zitat von Darkxor
    nun habe ich es verstanden.
    Veto!

    Zitat Zitat von Darkxor
    Kurz gefasst braucht man das $this-> also um Eigenschaften auf
    ein Objekt dynamisch zu beziehen und mit var leitet man diese
    Eigenschaften so ein und definiert sozusagen das es OOP ist.
    Blödsinn! Der erste Teil ist mit guten Willen nicht ganz falsch, trotzdem zeugt es nicht gerade von Verständnis der Sache.
    $this bezieht sich immer auf die Aktuelle Klasse (nicht Objekt). Hierüber kannst du nicht nur auf Eigenschaften der KIasse zugreifen, sondern auch auf dessen Methoden.
    Letztendlich dient es eher dazu, dass man nicht ständig Klasse::Methode() oder Klasse::Eigenschaft schreiben muss.

    Eigenschaften und Funktionen so
    PHP-Code:
    class MyClass {
      var 
    $eigenschaft;

    zu deklarieren, ist veraltet. Das wurde oben bereits erwähnt.
    Aus dieser Schreibweise die Objektorientierung an sich abzuleiten, ist mein persönlicher Lacher des Tages.
    OOP ist doch keine Notation!!

    Und nein: $this-> ist kein Konstruktor!
    Das
    PHP-Code:
    class MyClass {
      public function 
    __construct() {
       
    somecode
      
    }

    Ist ein Konstruktor in php.

    Da ist noch ne ganze Menge theoretischer Nachholbedarf bei dir^^

  9. #9
    Großmeister(in)
    Themenstarter
    Avatar von Darkxor
    Registriert seit
    17.11.2007
    Ort
    NRW
    Beiträge
    663
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: PHP Objektorientiert: this->... und var $varbaible - Frage

    Ok danke dann lese ich mir am kommenden Wochenende mal mein
    Wälzer zu dem Kapitel durch. Im Tut wars wohl doch zu kurz erklärt.
    -

Ähnliche Themen

  1. Datenbankverbindung und Verwaltungsmethoden objektorientiert
    Von Creamroyal im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 13.07.2008, 03:44
  2. Frage zu bewegten Fotos?! Frage zu graf. Menueleiste/Buttons
    Von Bianca im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 17
    Letzter Beitrag: 08.02.2006, 12:26
  3. C++ Problem (objektorientiert) =>Klassenvererbung
    Von Delikanli im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 07.12.2005, 14:47
  4. Frage zu PHP
    Von Gast im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 19.01.2005, 09:31
  5. Frage zu SQL
    Von GreenRover im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 17.01.2005, 18:50

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •