Kurze Frage zu PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kurze Frage zu PHP

    Kurze Fragen zu Klassen

    Ich hab ne Klasse beispiel


    <?php

    class auto
    {
    var $Geschwindigkeit=10;

    function Geschwindigkeiterhöhen();
    {
    $this->Geschwindigkeit +=1;
    }

    }

    ?>


    Kann ich jetz auf die mit

    <?php

    $auto::Geschwindigkeiterhöhen();

    ?>


    direkt zugreifen oder darf
    ich erst eine neue mit

    $auto2 = new auto;

    erstellen
    MFG Daniel
    Zuletzt geändert von armadillomon; 15.04.2004, 11:50.

  • #2
    ist das nur Pseudo-Code von dir? Ich frage, weil syntaxtisch ziemlich daneben ist.
    OK. egal.

    - mit $auto::Geschwindigkeiterhöhen(); kannst du drauf zugreifen, hast aber nicht viel davon, da Geschwindigkeit immer 1 beträgt
    - mit $var = new auto und $var->... wird jedes Mal 1 dazu addiert.

    Kommentar


    • #3
      Gut dann schilder ich dir direkt mein Prob

      Ich hab ne Klasse


      PHP-Code:
      class Auto

      {
      var 
      $Geschwindigkeit 0;
      function 
      Geschwindigkeiterhöhen() 

      $this->Geschwindigkeit +=1;
      }

      Soweit waren wir bereits

      Nun will ich die Geschwindigkeit bei jedem aufruf der datei
      um 1 erhöhen kann ich das direkt in der klasse machen oder muss ich erst ein neues objekt erstellen oder ein neues ableiten ´das is meine Frage!

      Schonmal danke im voraus
      Mfg Daniel

      Kommentar


      • #4
        sag mal lies du nicht was ich geschrieben habe oder wie?
        mit classname::classmethode() ändert du den Zustand der Klasse nicht, wie denn
        auch, eine Klasse ist noch keine Variable. Genauso gut kannst du auch nicht mit
        irgendwas bewirken, dass der Wertebereich von z.B. Byte nicht mehr zwischen
        0-255 liegt (gibs denn Byte in PHP )

        OK ändern wir deine Klasse mal kurz, um zu zeigen, was gemeint ist:
        PHP-Code:
        <?php
        class auto {
           var 
        $speed=3;
           function 
        IncreaseSpeed() {
               
        $this->speed +=1;
               return 
        $this-speed;
            }
        }
        $var = new auto;
        echo 
        '<br'>.auto::IncreaseSpeed();
        echo 
        '<br'>.auto::IncreaseSpeed();
        echo 
        '<br'>.$var->IncreaseSpeed();
        echo 
        '<br'>.$var->IncreaseSpeed();
        ?>

        Kommentar


        • #5
          Hi,

          Klassennamen sollten immer mit großem und Functionsnamen mit kleinem Buchstaben beginnen.

          besser:

          PHP-Code:
          class Auto {

             var 
          $speed 3;

             function 
          increaseSpeed() 
            {
                 
          $this->speed +=1;
                 return 
          $this->speed;
              }
          }

          $var = new auto;

          echo 
          "<br />".Auto::increaseSpeed();
          echo 
          "<br />".Auto::increaseSpeed();
          echo 
          "<br />".$var->increaseSpeed();
          echo 
          "<br />".$var->increaseSpeed(); 
          Compu
          Zuletzt geändert von compuboy1010; 15.04.2004, 12:59.

          Kommentar


          • #6
            Original geschrieben von compuboy1010
            Hi,

            Klassennamen sollten immer mit großem und Functionsnamen mit kleinem Buchstaben beginnen.

            Compu
            OffTopic:
            kLugScheiSse

            Kommentar


            • #7
              Das ist wirklich so!!

              Kommentar


              • #8
                Original geschrieben von compuboy1010
                Das ist wirklich so!!

                Aus Übersichts Gründen ja....
                Oder wie ich sage "Style Guide"
                [color=blue]MfG Payne_of_Death[/color]

                [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                [color=red]Merke:[/color]
                [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                Murphy`s Importanst LAWS
                Jede Lösung bringt nur neue Probleme
                Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                Kommentar


                • #9
                  ja, das stimmt, aber wenn du vorher schon bei den grundlangen versagst, dann brauchst du jetzt wirklich nicht mit diesen kleinigkeiten anfangen


                  lg, harry

                  Kommentar


                  • #10
                    es ist nur eine Benamsungs-Konvention, hat mit der Syntax nichts zu tun, das was ich geschrieben habe, funz auch so

                    Kommentar


                    • #11
                      um die Frage zu beantworten:

                      mit dem :: - Operator greift man statisch auf die Methode zu. Das bedeutet: man verwendet einfach eine Funktion, als ob man diese "aus der Klasse herausgelöst hätte".

                      Folglich werden dabei die verwendeten Member-Variablen nicht im Klasse-Kontext benutzt, sondern wie eine lokale Variable, die man in der losgelösten Funktion deklariert hat.

                      Wenn du die Member-Variable als solche benutzen willst, dann musst du eine Instanz der Klasse erzeugen und über diese Instanz die Funktion aufrufen.

                      $meineobjekt = &new MeineKlasse;
                      $irgendeinergebnis = $meinobjekt->IrgendeineMethode($parameter);

                      im gegensatz zu MeineKlasse::IrgendeineMethode($parameter); ...

                      zum Thema Gross-Kleinbuchstaben:
                      schon mal drüber nachgedacht, dass es unter Umständen sinnvoll sein könnte <eg> auch in PHP die polnische oder ungarische Notation zu verwenden?

                      Best regards,
                      CB
                      Hans Matthöfers Widerspruch zur Expertenerkenntnis: Künstliche Intelligenz ist besser als natürliche Dummheit.

                      Kommentar


                      • #12
                        Original geschrieben von asp2php
                        es ist nur eine Benamsungs-Konvention, hat mit der Syntax nichts zu tun, das was ich geschrieben habe, funz auch so

                        genau so ist es..

                        Kommentar

                        Lädt...
                        X