bleicher: OOP in PHP

0 52

OOP in PHP

bleicher
  • php
  1. 0
    Peter Pan
    1. 0
      Peter Pan
      1. 0
        Mega
        1. 0
          Peter Pan
  2. 0
    Mega
    1. 0
      bleicher
      1. 0
        Peter Pan
        1. 0
          Sympathisant
          1. 0
            Peter Pan
            1. 0
              Sympathisant
              1. 0
                Peter Pan
                1. 0
                  Peter Pan
                2. 0
                  Sympathisant
        2. 0

          OOP in PHP II (ERROR?)

          bleicher
          1. 0
            Peter Pan
            1. 0
              bleicher
              1. 0
                Peter Pan
                1. 0

                  OOP in PHP II (ERROR #2)

                  bleicher
                  1. 0
                    Mega
                    1. 0
                      bleicher
                      1. 0
                        Mega
                    2. 0
                      Peter Pan
                      1. 0
                        Mega
                        1. 0
                          Peter Pan
                  2. 0
                    Peter Pan
                    1. 0
                      bleicher
                      1. 0
                        Peter Pan
                        1. 0
                          bleicher
                          1. 0

                            P.S. -verzweiffelung

                            bleicher
                          2. 0
                            Peter Pan
                            1. 0
                              bleicher
                              1. 0
                                Peter Pan
                                1. 0
                                  bleicher
                                  1. 0
                                    Peter Pan
                                    1. 0
                                      bleicher
                                      1. 0
                                        Peter Pan
                                        1. 0

                                          danke@alle :)

                                          bleicher
                              2. 0
                                Mega
                        2. 0
                          Sympathisant
                    2. 0
                      Der Martin
                      1. 0
                        Peter Pan
                        1. 0
                          Der Martin
                          1. 0
                            Peter Pan
                            1. 0
                              Malcolm Beck´s
                              1. 0
                                Der Martin
                                1. 0
                                  Malcolm Beck´s
                            2. 0
                              Mega
      2. 0
        Mega
        1. 0
          Peter Pan
    2. 0
      steckl
      1. 0
        Mega

Grüße,
ich habe gerade angefangen mich in die classen einzuarbeiten, und habe da leider noch verständnissprobleme.

soweit ich es evrstanden habe, erzeugt man ein "objekt" der beliebig viele eigenschaften erhalten darf, die man von ihm nachher auch abfragen kann.
kann man es mit einem array vergleichen?key/eigenschaft bekommt ein wert zugewiesen?

ich habe einige tutorials durchgelsen - finde aber zB keine antwort auf die frage ob/wie man einem object mehrere eigenschaften in einer funktion zuweist.
zB erzeuge ich ein bild - und möchte innderhalb der klasse eine funktion haben die dem bild höhe/breite verleiht.
realisiert man das mit

  
return $this->height=$a;  
return $this->width=$b;  

?
oder gibt es da bessere schreibweisen?

MFG
bleicher

--
__________________________-
Die versprechen ernsthaft werbefreien hosting?
  1. Hi!

    return $this->height=$a;
    return $this->width=$b;

      
    Ein return gibt eine Variablr zurück und beendet die Methode - Dein zweiter Wert wird so also nie zurück gegeben - wie wolltest Du die Methode denn auch aufrufen, sodass Du mehrere Variablen speicherst?  
      
    Du hast mehrere Möglichkeiten dies zu lösen z.B: ein Array zurückgeben  
    welches beide (oder mehrere) Werte enthält.  
      
    Du kannst auch die Properties als public deklarieren (wenn Du PHP5 verwendest, sonst sind sie sowieso von außen les- und schreibbar) und dann auf die Eigenschaften des Objektes zugreifen:  
      
    ~~~php
      
    $my = new myClass;  
    echo $my->height;  
    echo $my->width;  
    
    

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    1. Hi!

      Ein return gibt eine Variablr

      Ich hasse diese kaputten Keyboards von Apple!

      off:PP

      --
      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
      1. Ich hasse diese kaputten Keyboards von Apple!

        Das kommt davon, weil sie immer ein Stück rausbeissen.

        1. Hi!

          Ich hasse diese kaputten Keyboards von Apple!

          Das kommt davon, weil sie immer ein Stück rausbeissen.

          Ja;)

          Das ist besonders dann blöd, wenn man - wie in meinem Fall heute mittag - dieses an einem Notebook auf dem Windooof VXY rennt, nutzen muss.
          Wegen eines defekten (internen) Keyboards habe ich das Apple-Ding per USB angedockt.

          off:PP

          --
          "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
  2. return $this->height=$a;
    return $this->width=$b;

      
    Du musst nur das "return" weglassen, dann machst du die Variablen in der Klasse auch in anderen Methoden verfügbar.  
      
    ~~~php
      
    class a {  
     function b(){  
      $this->c = "Test";  
     }  
     function d(){  
       echo $this->c; // Zeigt "Test" an  
     }  
    }  
    
    

    Wenn du $a als public definiert hast, kannst du auch über die Instanz der Klasse darauf zugreifen.

    1. Grüße,

      Wenn du $a als public definiert hast, kannst du auch über die Instanz der Klasse darauf zugreifen.

      also über
      var $a;
      ?

      und was heißt "über die instanz der klasse"? dass ich die variable wie eine normale ändern/setzen kann?

      MFG
      bleicher

      --
      __________________________-
      Die versprechen ernsthaft werbefreien hosting?
      1. Hi!

        Wenn du $a als public definiert hast, kannst du auch über die Instanz der Klasse darauf zugreifen.

        also über
        var $a;

        Verwendest Du noch PHP4?

        Wenn nicht, also ich gehe dann von 5 aus, deklariest Du die Variable so

          
         class MyClass  
         {  
          
           public $a;  
          
          // Rest der Klassendefinition  
          
         }  
          
        
        

        off:PP

        --
        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
        1. Salvete,

          class MyClass
          {

          public $a;

          // Rest der Klassendefinition

          }

            
          oder, der imaginaeren Typsicherheit wegen, so ;-)  
            
          ~~~php
          class MyClass  
           {  
            
             public String $a;  
             //  -----^  
            // Rest der Klassendefinition  
            
           }
          

          MfG,
          Sympatisant

          --
          "Non dura iubeantur, non prohibeantur inpura."
          1. Hi!

            oder, der imaginaeren Typsicherheit wegen, so ;-)

            class MyClass

            {

            public String $a;
               //  -----^
              // Rest der Klassendefinition

            }

              
              
            In  PeHaPe?  
            Nicht, nee!  
              
            off:PP  
              
              
            
            -- 
            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)  
            
            
            1. Salvete,

              In  PeHaPe?
              Nicht, nee!

              Aber klar doch.
              http://de3.php.net/manual/en/language.oop5.typehinting.php *
              http://de3.php.net/types

              * die Aussage ueber die skalaren Typen ist veraltet.

              MfG,
              Sympatisant

              --
              "Non dura iubeantur, non prohibeantur inpura."
              1. Hi!

                In  PeHaPe?
                Nicht, nee!

                Aber klar doch.
                http://de3.php.net/manual/en/language.oop5.typehinting.php *
                http://de3.php.net/types

                * die Aussage ueber die skalaren Typen ist veraltet.

                Welche PHP-Version meinst Du, bitte?

                Teste mal das von mir bemängelte Beispiel mit dem PHP-Intepreter Deiner Wahl!

                off:PP

                --
                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                1. Hi Ingrid!

                  .. mit dem PHP-Intepreter Deiner Wahl!

                  Gut, dass ich nicht Interpeter geschrieben habe!

                  off:PP

                  --
                  "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                2. Salvete,

                  OK, die Aussage ueber die skalaren Typen muss ich wohl leider revidieren.
                  Der Parser meckert wohl nicht, wenn ein Methodenparameter von einem
                  skalaren Typen ist, jedoch laesst sich keine Instantz eines solchen
                  Typen erstellen. Und Casting mag PHP an dieser Stelle auch nicht.

                  Es geht tatsaechlich nur mit Arrays, Objects und Klassen.

                    
                  <?php  
                  class AClass  {  
                   public function dump() {  
                    var_dump($this);  
                   }  
                  }  
                  class BClass {  
                   public static function test(AClass $astring) {  
                     $astring->dump();  
                    }  
                  }  
                  BClass::test(new AClass);  
                  ?>  
                  
                  

                  Naja, es waere ja auch zu schoen gewesen ;-)

                  MfG,
                  Sympatisant

                  --
                  "Non dura iubeantur, non prohibeantur inpura."
        2. Grüße,
          erstmals danke an alle die geantwortet haben ;)

          ich bin nun tatsächlich etwas weiter, jedoch streikt hier wieder was:

          die zeile

            
          function tmbSize($modus=$config['resize_mode'], array $infos=getimagesize($bild)){//tmbgroesse ermitteln  
          
          

          erzeugt "Parse error: syntax error, unexpected T_VARIABLE"

          habe ich es gründlich missverstanden und derartiges vorbelgen der aufrufwerte ist unerlaubt?

          MFG
          bleicher

          --
          __________________________-
          Die versprechen ernsthaft werbefreien hosting?
          1. Hi bleicher!

            Nochmals meine Frage PHP 4 oder 5 - ich frage deshalb, da es deutliche Unterschiede gibt.

            function tmbSize($modus=$config['resize_mode'], array $infos=getimagesize($bild)){//tmbgroesse ermitteln

              
            
            > habe ich es gründlich missverstanden und derartiges vorbelgen der aufrufwerte ist unerlaubt?  
              
            Beide Male: Ja!  
              
              
            Bei der Deklaration Deiner Methode ist dies so nicht möglich - hier kannst Du nur konstante Werte in der Signatur als Default festlegen.  
              
            off:PP  
              
              
            
            -- 
            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)  
            
            
            1. Grüße,

              Nochmals meine Frage PHP 4 oder 5 - ich frage deshalb, da es deutliche Unterschiede gibt.

              local 5, beim hoster kanns auch 4 werden - kann man für beides valide coden?

              Beide Male: Ja!

              Bei der Deklaration Deiner Methode ist dies so nicht möglich - hier kannst Du nur konstante Werte in der Signatur als Default festlegen.

              danke :)

              ich fand in der documentation  kein hinweise diesbezüglich >_<

              MFG
              bleicher

              --
              __________________________-
              Die versprechen ernsthaft werbefreien hosting?
              1. Hi!

                Nochmals meine Frage PHP 4 oder 5 - ich frage deshalb, da es deutliche Unterschiede gibt.

                local 5, beim hoster kanns auch 4 werden - kann man für beides valide coden?

                Ja, dann lautet der kleinste gemeinsame Nenner: PHP4
                Will sagen: Du programmierst dann PHP4 - Code, welchen Dein (lokaler) PHP5-Interpreter ausführt - wobei es manchmal (selten) Probleme geben kann.

                Bietet der Hoster nur 4?

                Das wäre schade, denn in PHP4 zu coden und dann noch objektorientiert macht keinen Spass.

                Ersthaft betrachtet bietet PHP4 kein richtiges OOP - z.B: Datenkapselung ist nicht möglich - alle Properties sind 'public' und somit außerhalb der Klasse les- und schreibbar.

                off:PP

                --
                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                1. Grüße,

                  Das wäre schade, denn in PHP4 zu coden und dann noch objektorientiert macht keinen Spass.

                  dann finde ich einen anderen freehoster^^!

                  ich konnte den einen fehler beheben, hab aber nun was neues -

                  wenn ich in einer Klasse in einer funktion eine variable erzeuge, wird sie in der nexten funktion der klase nicht mehr verfügbar sein.
                  kann man das umgehen?
                  vordefinieren als

                  static $conf;
                  oder
                  var $conf;

                  erzeugt fehlermeldung -

                  syntax error, unexpected T_GLOBAL, expecting T_FUNCTION
                  oder hilft nicht (var $..)

                  .. ich hab das gefühl ich springe von einem irrtum zum nexten, und kein tutorial kann mir da helfen >_<
                  jetzt bin ich so richtig auf die barmherzigkeit der selfhtmler angewisen...
                  MFG
                  bleicher

                  --
                  __________________________-
                  Die versprechen ernsthaft werbefreien hosting?
                  1. wenn ich in einer Klasse in einer funktion eine variable erzeuge, wird sie in der nexten funktion der klase nicht mehr verfügbar sein.
                    kann man das umgehen?

                    Ja, wie bereits erwähnt, machst du das mit $this->
                    Damit machst du die Variable in allen Methoden verfügbar.

                    Und in einer Klasse gibt es keine Funktionen, da heissen sie Methoden ;)

                    1. Grüße,

                      Ja, wie bereits erwähnt, machst du das mit $this->
                      Damit machst du die Variable in allen Methoden verfügbar.

                      Und in einer Klasse gibt es keine Funktionen, da heissen sie Methoden ;)

                      hab ich als erstes versucht -

                      der konstruktor (richtiges wort^^?)
                      erzeugt ein array $config;
                      am ende der methode habe ich

                      $this->$config;

                      und

                      return $this->$config;

                      und

                      $this->config=$config;
                      versucht - brachte alles nichts, was mache ich bloß falsch?

                      MFG
                      bleicher

                      --
                      __________________________-
                      Die versprechen ernsthaft werbefreien hosting?
                      1. return $this->$config;

                        Da wird der Inhalt von $config genutzt. Wenn also $config="test", dann würde $this->$config == $this->test sein.

                        $this->config=$config;

                        So sollte es aber klappen.

                    2. Hi!

                      wenn ich in einer Klasse in einer funktion eine variable erzeuge, wird sie in der nexten funktion der klase nicht mehr verfügbar sein.
                      kann man das umgehen?

                      Ja, wie bereits erwähnt, machst du das mit $this->
                      Damit machst du die Variable in allen Methoden verfügbar.

                      Nein mit $this machst Du nichts verfügbar - auch wenn man im Umgang mit PHP4 diesen Eindruck gewinnen könnte. Aber wie gesagt: mit PHP4 ist keine 'echte' OOP möglich.

                      Mit $this greifst Du auf Eigenschaften und Methoden innerhalb der Klasse zu.

                      Und in einer Klasse gibt es keine Funktionen, da heissen sie Methoden ;)

                      Du Besserwisser ;))

                      off:PP

                      --
                      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                      1. Nein mit $this machst Du nichts verfügbar - auch wenn man im Umgang mit PHP4 diesen Eindruck gewinnen könnte. Aber wie gesagt: mit PHP4 ist keine 'echte' OOP möglich.

                        Ich gehe eh immer von PHP5 aus, die Gründe nennst du ja selbst ;)

                        Mit $this greifst Du auf Eigenschaften und Methoden innerhalb der Klasse zu.

                        Ja, und mit $this->test = "ABCD" stelle ich eine Variable zur Verfügung auf die ich innerhalb der Klasse/Instanz zugreifen kann.
                        Ich würde sowas als "verfügbar machen" definieren. Wie drückt man sowas denn richtig aus? Ich hab mir alle Programmiersprachen selbst beigebracht und daher kann es schon vorkommen, dass meine Ausführungen nicht exakt sin. Ich lerne aber immer gerne dazu ;)

                        1. Hi!

                          Nein mit $this machst Du nichts verfügbar - auch wenn man im Umgang mit PHP4 diesen Eindruck gewinnen könnte. Aber wie gesagt: mit PHP4 ist keine 'echte' OOP möglich.

                          Ich gehe eh immer von PHP5 aus, die Gründe nennst du ja selbst ;)

                          Ja!

                          Mit $this greifst Du auf Eigenschaften und Methoden innerhalb der Klasse zu.

                          Ja, und mit $this->test = "ABCD" stelle ich eine Variable zur Verfügung

                          Damit weist Du einer Property n einen Wert zu - diese sollte schon vorhanden sein.

                          Ich hab mir alle Programmiersprachen selbst beigebracht

                          Also ich habe auch mit der Muttermilch keine mitbekommen, sondern selbst gelernt.

                          off:PP

                          --
                          "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                  2. Hi!

                    Das wäre schade, denn in PHP4 zu coden und dann noch objektorientiert macht keinen Spass.

                    dann finde ich einen anderen freehoster^^!

                    Es gibt preiswerte Hoster ab 12€ pro Jahr! Nein ich werde hier keine Werbung machen;)

                    ich konnte den einen fehler beheben, hab aber nun was neues -

                    So ist das nun mal, wenn man etwas neues lernt;)

                    Glaube niemals, Du könntest irgendwann etwas 'auf Anhieb' fehlerfrei programmieren auch nach Jahren nicht! Wer so etwas behauptet belügt sich selbst.

                    wenn ich in einer Klasse in einer funktion eine variable erzeuge, wird sie in der nexten funktion der klase nicht mehr verfügbar sein.

                    Natürlich nicht, da Funktionen (Methoden) der Klasse einen lokalen Scope haben - entweder übergibst du die Variablen, oder du nutzt Variablen, die innerhalb der Klasse verfügbar sind.

                    .. ich hab das gefühl ich springe von einem irrtum zum nexten, und kein tutorial kann mir da helfen >_<

                    Du solltest Dir Scope mal ansehen.

                    jetzt bin ich so richtig auf die barmherzigkeit der selfhtmler angewisen...

                    Nicht sooo dramatisch sehen - vielleicht kommt ja 'Der Martin' und gibt Dir den halben Mantel ab.

                    off:PP

                    --
                    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                    1. Grüße,

                      Du solltest Dir Scope mal ansehen.

                      damit fing ich an - aber jeder evrsuch eine variable als global vorzudefinieren (vor einer funktion in der calsse) erzeugt fehelrmeldung, dass keine variable sondern funktion erwartet wurde.

                      umwege sind ja möglich,($_GLOBALS würde evrmutlcih helfen) aber ich wollte es OOP-gerecht machen.. sonst könnte ich ja gleich bei normalen funktionen bleiben.

                      MFG
                      bleicher

                      --
                      __________________________-
                      Die versprechen ernsthaft werbefreien hosting?
                      1. Hi!

                        Du solltest Dir Scope mal ansehen.

                        damit fing ich an - aber jeder evrsuch eine variable als global vorzudefinieren (vor einer funktion in der calsse) erzeugt fehelrmeldung, dass keine variable sondern funktion erwartet wurde.

                        Hast du mal ein Beispiel zur Hand?

                        Du hast es aber (Vorsicht falsch!) nicht mit so versucht:

                          
                          
                        class myClass  
                        {  
                            global $b;  
                        //..rest  
                        }  
                          
                        
                        

                        hoffe ich?

                        off:PP

                        --
                        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                        1. Grüße,

                          Du hast es aber (Vorsicht falsch!) nicht mit so versucht:

                          class myClass
                          {
                              global $b;
                          //..rest
                          }

                            
                          nein - ich setzte  
                          global $a;  
                          in der funktion in der ich darauf (auf $a) zugreifen wollte.  
                          hilft bloß nicht.  
                          gibt es echt keine OOP-spezifische methode?  
                          MFG  
                          bleicher
                          
                          -- 
                          \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_-  
                            
                          [Die versprechen ernsthaft werbefreien hosting?](http://www.funpic.de/?assasin)
                          
                          1. langsam verstehe ich den sinn von OOP nich tmehr -
                            ich dachte es würde den vortiel geben an ein object viele eigenschaften hängen zu können, sodass ich mit eben diesem problem der funktionsübergreifenden funktionen (habe über 10) kämpfen müsste...

                            wozu ist OOP bitteschön gut?
                            was ist oop's vorteil den "normalen funcitonen" gegnüber?
                            MFG
                            bleicher

                            --
                            __________________________-
                            Die versprechen ernsthaft werbefreien hosting?
                          2. Hi!

                            nein - ich setzte
                            global $a;
                            in der funktion in der ich darauf (auf $a) zugreifen wollte.

                            Ist $a denn im globalen Scope - d.h. hier: _vor der Klassendefinition_ im script verfügbar?

                            hilft bloß nicht.

                            Heißt was genau?
                            Komm rück schon raus den Code - es ist gerade keiner da;)

                            gibt es echt keine OOP-spezifische methode?

                            [*]

                            OOP und globale Variablen sind keine wirklichen Freunde;)

                            off:PP

                            [*] irgendjemand wird diese Stelle kommentieren - ich spare mir das jetzt.

                            --
                            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                            1. Grüße,

                              Heißt was genau?
                              Komm rück schon raus den Code - es ist gerade keiner da;)

                              ok - STARK verkürzte version - sinn ist bildhochzuladen und ein thumbnail zu erzeugen

                                
                                
                              <?php  
                              include "sql_key.php";//verbindung zu DB  
                                
                              class Imaginator{  
                                
                               function Imaginator($path=false){  
                                
                               //erzeugt hier den array $config mit einstellungen  
                                
                               $path===false ? $bild_temp_name=$_FILES['picture']['tmp_name'] : $bild_temp_name=$path; //das ganze wird sich entweder auf gerade hochgeladenes oder ein bereits vorhandenes bidl bezihen  
                                
                               }  
                                
                               function newName(){//dateiname der neuen datei, ohne typ-erweiterung  
                                
                               return $this->$new_last_name;  
                               }  
                                
                               function tmbSize($modus, $infos){//tmbgroesse ermitteln  
                               global $config;  
                               $modus===false ? $modus=$config['resize_mode'] : $modus;  
                               $infos===false ? $infos=getimagesize($bild_temp_name) : $infos;  
                              ############# HIER ###############  
                              //steckt das problem - ich brauche daten aus $config, will es aber nicht an jede funktion erneut schicken.  
                                
                               }  
                                
                               function tmbMake($bild){//erzeugen  tmb mit gegeben groessen  
                               $bild===false ? $bild=$bild_temp_name : $bild;  
                              #########soweit kam der code nicht, aber hier wird ja das glieche problem erwartet....  
                                 }  
                               }  
                                
                               function dbInsert($commentar, $flag){  
                               $commentar===false ? $commentar=mysql_real_escape_string($_POST['comment']) : $commentar;  
                               $flag===false ? $flag=mysql_real_escape_string($_POST['flag']) : $flag;  
                              ############hier wird noch sql-query zum speichern von bilddaten erzeugt  
                                
                                mysql_query($sql);  
                               }  
                              }//classende  
                                
                              $bild=new Imaginator;  
                              $bild->newName();  
                              $bild->tmbSize(false, false);  
                              $bild->tmbMake(false);  
                              $bild->dbInsert();  
                                
                              ?>  
                              
                              

                              MFG
                              bleicher

                              --
                              __________________________-
                              Die versprechen ernsthaft werbefreien hosting?
                              1. Hi!

                                Ich kürze mal Deinen Code und formatiere einen Ausschnitt etwas um:

                                function tmbMake($bild)

                                {    //erzeugen  tmb mit gegeben groessen

                                $bild===false ? $bild=$bild_temp_name : $bild;
                                     #########
                                }
                                }

                                  
                                Fällt dir was auf?  
                                  
                                Welchen Editor verwendest Du?  
                                  
                                  
                                off:PP  
                                  
                                  
                                
                                -- 
                                "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)  
                                
                                
                                1. Grüße,

                                  Welchen Editor verwendest Du?

                                  Notepad++ , wen ndu die gescwefte klammer meins t- ich habe da ca 50 zeilen code gelöscht - leider etwas schlampig - die überschüssige } gehört zu einer if() die ich hier kürzte.(original-php ist 141 zeilen (ca 120 ohne leere)

                                  MFG
                                  bleicher

                                  --
                                  __________________________-
                                  Die versprechen ernsthaft werbefreien hosting?
                                  1. Hi!

                                    wen ndu die gescwefte klammer meins t-

                                    Yo, meinte ich.

                                    Welche Fehlermeldung kommt denn aktuell?

                                    off:PP

                                    --
                                    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                                    1. Grüße,

                                      Yo, meinte ich.

                                      Welche Fehlermeldung kommt denn aktuell?

                                      aktuell versuche ich die daten über zB
                                      $this->infos=$infos; (wieder und wieder tutoprial zu lesen half doch)
                                      global zu tragen - das klappt scheinbar..

                                      also mal sehen was kommt..
                                      MFG
                                      bleicher

                                      --
                                      __________________________-
                                      Die versprechen ernsthaft werbefreien hosting?
                                      1. Hi!

                                        aktuell versuche ich die daten über zB
                                        $this->infos=$infos; (wieder und wieder tutoprial zu lesen half doch)
                                        global zu tragen - das klappt scheinbar..

                                        'Scheinbar' wäre schlecht - 'anscheinend' gäbe Spielraum;)

                                        also mal sehen was kommt..

                                        Ich nehme schon mal die Kontaktlinsen raus und setze die Brille auf!

                                        off:PP

                                        --
                                        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                                        1. Grüße,

                                          also mal sehen was kommt..

                                          Ich nehme schon mal die Kontaktlinsen raus und setze die Brille auf!

                                          ich glaube hier kommt ein

                                          TA-DA-A!

                                          habe nun *anscheinend* eine classe die ich nun künftig wohl für ellerlei bildhochladen verwenden kann - inclusive 2 arten der thumbnailserstellung und configuration über config.ini :)

                                          MFG
                                          bleicher

                                          --
                                          __________________________-
                                          Die versprechen ernsthaft werbefreien hosting?
                              2. class Imaginator{

                                Bei PHP5 solltest du das __construct nennen. Es funktioniert momentan zwar beides, könnte in PHP6 aber schon anders sein.

                                function newName(){//dateiname der neuen datei, ohne typ-erweiterung
                                return $this->$new_last_name;
                                }

                                Un dieser Methode gibt es $new_last_name nicht. Der Aufruf sollte eigentlich nen E_ERROR werfen, da du ja quasi auf $this-> (hier fehlt was, weil die Variable leer ist) zugreifen willst, was nicht klappen kann.

                                function tmbSize($modus, $infos){//tmbgroesse ermitteln
                                global $config;

                                Woher kommt $config? Ich seh im ganzen Code keine Deklaration.

                        2. Salvete,

                          class myClass
                          {
                              global $b;
                          //..rest
                          }

                          Ich habe mich jetzt nicht mit dem Thread beschaeftigt, aber eine globale  
                          Variable hat in einer Klasse nichts zu suchen.  
                          Wenn man das benoetigt, dann hat man bereits im Design etwas falsch gemacht.  
                            
                          MfG,  
                          Sympatisant
                          
                          -- 
                          "Non dura iubeantur, non prohibeantur inpura."
                          
                    2. Hallo,

                      jetzt bin ich so richtig auf die barmherzigkeit der selfhtmler angewisen...
                      Nicht sooo dramatisch sehen - vielleicht kommt ja 'Der Martin' und gibt Dir den halben Mantel ab.

                      auch wenn ich nicht heilig bin - das mit dem Mantel wär nicht das Problem; der würde bleicher aber in der aktuellen Jahreszeit auch nicht wirklich helfen. ;-)
                      Apropos helfen: Nein, in diesem Bereich halte ich mich lieber zurück. Mein Wissen über syntaktische Fallstricke der klassischen[tm] OOP ist nur Stückwerk; ich meide sie, weil mir die Denkweise nicht behagt.

                      Für mich spielt sich OOP nur im Kopf des Programmierers ab. Der dabei entstehende Code folgt zwar durchaus allgemeinen Gesichtspunkten der OOP, sieht aber syntaktisch völlig "normal" aus und wirkt auf den ersten Blick rein prozedural. Mit diesem Programmiermodell komme ich *viel* besser zurecht.

                      Ciao,
                       Martin

                      --
                      Ist die Katze gesund,
                      freut sich der Hund.
                      1. Hi!

                        jetzt bin ich so richtig auf die barmherzigkeit der selfhtmler angewisen...
                        Nicht sooo dramatisch sehen - vielleicht kommt ja 'Der Martin' und gibt Dir den halben Mantel ab.

                        auch wenn ich nicht heilig bin

                        Das stimmt natürlich - es bot sich nur gerade an, Deinen Nick ins Spiel zu bringen - nicht böse gemeint;)

                        »- das mit dem Mantel wär nicht das Problem; der würde bleicher aber in der aktuellen Jahreszeit auch nicht wirklich helfen. ;-)

                        Das stimmt natürlich auch!

                        Für mich spielt sich OOP nur im Kopf des Programmierers ab.

                        Viel wichtiger: im Kopf der kostenstellenverantwortlichen Entscheider.
                        Ohne Auftrag: keine Programmierung.

                        Das war jetzt keine Wertung - nur eine Wiedergabe meiner beruflichen Erfahrungen.

                        off:PP

                        --
                        "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                        1. n'Abend!

                          Für mich spielt sich OOP nur im Kopf des Programmierers ab.
                          Viel wichtiger: im Kopf der kostenstellenverantwortlichen Entscheider.
                          Ohne Auftrag: keine Programmierung.

                          Wieso das? Aufträge für Programmierung und Softwareentwicklungen definieren sich meiner Erfahrung nach durch äußere Eigenschaften:

                          * was muss die Software können?
                           * auf welcher Plattform soll sie laufen?
                           * welche Eingaben erhält sie und auf welchem Weg?
                           * wie sehen die Ausgabedaten aus und wo gehen sie hin?

                          Wie dieses Stück Software intern realisiert und organisiert ist, interessiert die Auftraggeber dabei meist nicht, solange die Schnittstellen zur Umgebung stimmen. Und natürlich der Preis. ;-)

                          Das war jetzt keine Wertung - nur eine Wiedergabe meiner beruflichen Erfahrungen.

                          Hmm, das überrascht mich. Wenn ich einen Fachmann mit der Wartung oder Reparatur meiner Heizungsanlage beauftrage, schreibe ich ihm ja auch nicht vor, welches Werkzeug er zu benutzen hat oder wo er das nötige Material einkauft. Das Ergebnis zählt, nicht die Mittel.

                          So long,
                           Martin

                          --
                          Es gibt Tage, da gelingt einem einfach alles.
                          Aber das ist kein Grund zur Sorge; das geht vorbei.
                          1. Hi!

                            Hmm, das überrascht mich. Wenn ich einen Fachmann mit der Wartung oder Reparatur meiner Heizungsanlage beauftrage, schreibe ich ihm ja auch nicht vor, welches Werkzeug er zu benutzen hat oder wo er das nötige Material einkauft.

                            Das finde ich etwas kursichtig - wenn ich einen Teich im Garten anlegen lassen möchte, werde ich darauf bestehen, dass der Aushub mit einer Schaufel (kleiner Teich!) erfolgt und nicht mit einer Stange TNT. Ein Loch im Boden kann man auf beide Arten erzielen.

                            Wenn ich eine Gas-Heizung einbauen lasse, interessiert es mich sehr wohl, welches Material der Handwerker für die zu verlegende Leitung benutzt und welches Werkzeug benutzt wird.

                            Das Ergebnis zählt, nicht die Mittel.

                            Wenn meine Mittel es erlauben, zählt für mich auch der Weg zum Ziel.

                            off:PP

                            --
                            "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
                            1. hi,

                              wenn ich einen Teich im Garten anlegen lassen möchte, werde ich darauf bestehen, dass der Aushub mit einer Schaufel (kleiner Teich!) erfolgt und nicht mit einer Stange TNT. Ein Loch im Boden kann man auf beide Arten erzielen.

                              Ein Bagger würde es wohl auch noch gerade so hinkriegen :)

                              Wenn ich eine Gas-Heizung einbauen lasse, interessiert es mich sehr wohl, welches Material der Handwerker für die zu verlegende Leitung benutzt und welches Werkzeug benutzt wird.

                              Da gehörst du zu den wenigen, die wissen, was sich hier eignet und was nicht, ich würde mich auf meinen Gas- Wasser- Scheisse Kumpel verlassen[1] :)

                              mfg
                              [1] Auch wenn ich gerne selber Handwerke und den Akku schwinge

                              1. Hallo,

                                Wenn ich eine Gas-Heizung einbauen lasse, interessiert es mich sehr wohl, welches Material der Handwerker für die zu verlegende Leitung benutzt und welches Werkzeug benutzt wird.
                                Da gehörst du zu den wenigen, die wissen, was sich hier eignet und was nicht, ich würde mich auf meinen Gas- Wasser- Scheisse Kumpel verlassen[1] :)

                                so meinte ich das auch. Ich habe nicht zufällig den Begriff "Fachmann" gewählt anstatt "Experte" gewählt.

                                [1] Auch wenn ich gerne selber Handwerke und den Akku schwinge

                                Ich auch. Aber es gibt vieles, was andere besser können als ich - sollten sie wohl auch, wenn sie es beruflich machen. Und da werde ich als Laie einen Teufel tun und denen vorschreiben, *wie* sie ihre Arbeit zu erledigen haben.

                                So long,
                                 Martin

                                --
                                Lehrer:  Wieviel ist die Hälfte von 8?
                                Schüler: Kommt drauf an. Waagrecht 0 und senkrecht 3.
                                1. hi,

                                  [1] Auch wenn ich gerne selber Handwerke und den Akku schwinge
                                  Ich auch. Aber es gibt vieles, was andere besser können als ich - sollten sie wohl auch, wenn sie es beruflich machen. Und da werde ich als Laie einen Teufel tun und denen vorschreiben, *wie* sie ihre Arbeit zu erledigen haben.

                                  Wenn man es doch tun möchte, sollte man schon ein versierter Laie sein, wer als Laie einem Fachmann was von seinem Fach erzählen will ... Wir sehen ja, wozu es meistens hier im Forum führt :)

                                  mfg

                            2. Wenn ich eine Gas-Heizung einbauen lasse, interessiert es mich sehr wohl, welches Material der Handwerker für die zu verlegende Leitung benutzt und welches Werkzeug benutzt wird.

                              Und welchen grund hat es denn nun, dass du einem Programmierer vorschreibst, wie er programmiert (OOP oder nicht) und sogar welchen Editor er benutzen muss? Dann wären wir bei der Art der Leitung und dem Werkzeug.

      2. Grüße,

        Wenn du $a als public definiert hast, kannst du auch über die Instanz der Klasse darauf zugreifen.

        also über
        var $a;
        ?

        In PHP5 nicht mehr, da gibt es public, private und final. (Hab ich was vergessen?). var wirft mindestens ein E_WARNING

        und was heißt "über die instanz der klasse"? dass ich die variable wie eine normale ändern/setzen kann?

        $class = new Klasse

        $class ist dann die Instanz.
        Du greifst also per $class->a auf die Variable $a in der Klasse "Klasse" zu.

        1. Hi!

          In PHP5 nicht mehr, da gibt es public, private und final. (Hab ich was vergessen?).

          Ja: hinsichtlich der Sichtbarkeiten von Properties und Methoden gibt es public, protected und private.
          Als final deklarierte Methoden können nicht durch abgeleitete Klassen 'überschrieben' werden - eine als final deklarierte Klasse kann nicht erweitert werden.

          off:PP

          --
          "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)
    2. Hi,

      class a {
      function b(){
        $this->c = "Test";
      }
      function d(){
         echo $this->c; // Zeigt "Test" an
      }
      }

      
      >   
      > Wenn du $a als public definiert hast, kannst du auch über die Instanz der Klasse darauf zugreifen.  
        
      Wenn ich das richtig sehe sollte es hier $c (oder auch b() oder d()) statt $a heißen.  
        
      mfG,  
      steckl
      
      1. Wenn ich das richtig sehe sollte es hier $c (oder auch b() oder d()) statt $a heißen.

        Stimmt. da hat sich der Fehlerteufel eingeschlichen.