PHP User: Objektorientierung

Hallo Leute,
ich bin dabei, PHP zu lernen und wollte mich genauer über OOP informieren.
Als Beispiel möchte ich nur 2 Klassen haben, wobei dir unsere Klasse die variable der oberen Klasse verändert. Wo ist der Fehler in meinem Code? Ich habe nur eine php Datei "beispiel.php" mit 2 Klassen drin(ist das erlaubt?)

Code:

<?

class Klasse1{
  public $varHaus = 30000;
  $veraendern = new Veraendern();
  $veraendern -> hauswert();
}

class Veraendern extends Klasse1{
  function hauswert(){
     $varHaus = 3500000;
     echo $varHaus;
  }
}

?>

Meine zweite Frage wäre, ob man durch HTML direkt eine Funktion, oder Klasse von PHP aufrufen kann?

  1. ich bin dabei, PHP zu lernen und wollte mich genauer über OOP informieren.

    Ich hoffe, du kannst schon mit Stützrädern Fahrrad fahren (du hast schon irgendwas mit anderen prozeduralen, C-ähnlichen sprachen zu tun gehabt) und wagst dich jetzt ans Motorrad fahren ohne Stützräder :)

    Als Beispiel möchte ich nur 2 Klassen haben, wobei dir unsere Klasse die variable der oberen Klasse verändert. Wo ist der Fehler in meinem Code? Ich habe nur eine php Datei "beispiel.php" mit 2 Klassen drin(ist das erlaubt?)

    Und der PHP-Interpreter gibt dir keine Fehlermeldung?

    Dass $varHaus in der Methode "hauswert" die öffentliche Variable "$varHaus" nicht verändert, sollte aufgrund des Gültigkeitsbereichs klar sein.

    Hier fehlt ein nicht unwesentliches Schlüsselwort.

    Meine zweite Frage wäre, ob man durch HTML direkt eine Funktion, oder Klasse von PHP aufrufen kann?

    HTML ist keine Programmiersprache, du kannst hier unmöglich PHP-Code ausführen (sofern man davon absieht, dass du die HTML-Files vorher durch den PHP-Interpreter jagst) aber beim parsen vom HTML durch den Browser ist es zu spät.

    Du kannst aber mit PHP deinen Wunsch-HTML-Code ausgeben - das ist der übliche Weg.

    1. Der Browser gibt mir schon Fehler aus aber leider kann ich damit nichts anfangen...Ich habe bereits mit c gearbeitet und weiss, wie objektorientierung funktioniert(ein bisschen). Ich müsste mich aber ein wenig in PHP Syntax einarbeiten(sprich: schreibweise,etc).

      1. Der Browser gibt mir schon Fehler aus aber leider kann ich damit nichts anfangen...

        Soll ich jetzt "OK" schreiben und hoffen, dass du selbst auf die Idee kommst, die Fehlermeldung in der Suchmaschine deiner Wahl nachzuschlagen oder hier zu posten? Oder was soll mir das jetzt sagen? :)

        1. Der Browser gibt mir schon Fehler aus aber leider kann ich damit nichts anfangen...

          Soll ich jetzt "OK" schreiben und hoffen, dass du selbst auf die Idee kommst, die Fehlermeldung in der Suchmaschine deiner Wahl nachzuschlagen oder hier zu posten? Oder was soll mir das jetzt sagen? :)

          Ich glaube es ist in diesem Script nicht nur 1 Bug enthalten. Den Script kann man nur schwer theoretisch durchgehen. Kopier ihn mal am besten und führ ihn aus.

          1. Ich glaube es ist in diesem Script nicht nur 1 Bug enthalten. Den Script kann man nur schwer theoretisch durchgehen. Kopier ihn mal am besten und führ ihn aus.

            Wie dedlfix schon sagt, hat dein Script ein paar grobe Fehler - das muss ich nicht ausführen, um zu wissen, dass es nicht geht - aber die Fehlermeldung die du erhältst, hat dir das sicher schon gesagt.

            Ich hab' keine Motivation das jetzt selbst auszuführen um dir dann die Fehlermeldung zu zitieren.

            1. Es geht mir gar nicht um die Fehlermeldung, da ich, wie ich bereits geschrieben hatte, nichts damit anfangen kann. Es ging mir um die korrekte Lösung des Problems. Also das richtige Code.

              1. Hi,

                Es geht mir gar nicht um die Fehlermeldung, da ich, wie ich bereits geschrieben hatte, nichts damit anfangen kann.

                Wenn du Programmieren willst, musst du auch lernen Fehlermeldungen zu interpretieren.

                Es ging mir um die korrekte Lösung des Problems. Also das richtige Code.

                Dann beschäftige dich mit den Grundlagen der objektorientierten Programmierung in PHP.
                http://www.php.net/manual/en/language.oop5.php

                MfG ChrisB

                --
                RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
  2. Tach!

    class Klasse1{
      public $varHaus = 30000;
      $veraendern = new Veraendern();
      $veraendern -> hauswert();
    }

    Eine Klasse ist keine Funktion. In einer Klasse können nur Eigenschaften und Methoden deklariert werden, aber Code direkt auszuführen, ist nicht möglich. Die public-Zeile ist noch gültige Syntax, der Rest nicht mehr.

    class Veraendern extends Klasse1{
      function hauswert(){
         $varHaus = 3500000;
         echo $varHaus;
      }
    }

    Informiere dich über den Unterschied zwischen einfachen in Funktionen (und Methoden) sichtbaren Variablen und Eigenschaften von Objekten. This is essential (Doppelbedeutung beabsichtigt).

    Meine zweite Frage wäre, ob man durch HTML direkt eine Funktion, oder Klasse von PHP aufrufen kann?

    Kann HTML irgendeinen serverseitigen Code aufrufen? Nein. Ein Browser kann Requests an einen Server stellen, das ist aber auch schon alles.

    dedlfix.

    1. This is essential (Doppelbedeutung beabsichtigt).

      Und SELF führt oft zum Ziel (auch hier ist die Doppeldeutigkeit beabsichtigt).

  3. Hallo,

    Meine zweite Frage wäre, ob man durch HTML direkt eine Funktion, oder Klasse von PHP aufrufen kann?

    Anders herum:

      
    <?php if($bla):?>  
    Hier kommt HTML  
    <?php else:?>  
    Oder was anderes  
    <?php endif;?>  
    
    

    Gruß

    jobo