Ankündigung

Einklappen
Keine Ankündigung bisher.

finde den Fehler im strpos nicht

Einklappen

Neue Werbung 2019

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

  • finde den Fehler im strpos nicht

    PHP-Code:
    $table lcfirst(substr(get_class($this), (strpos(get_class($this), "_")+1), strpos(get_class($this), "Manager"))); 
    Die Klasse heißt Model_UserManager. Was mir substr liefert ist UserManage. Beim versuch mit expliziten Start- und Endpositionsnummern substr(get_class($this), 6, 10) bekomme ich ebenfalls UserManage.

    Kann vielleicht jemand den Fehler erkennen? Danke im Voraus.

    Edit: Überschrift falsch, es müsste die Funktion substr sein.


  • #2
    Dass UserManager 11 Buchstaben sind?
    PHP-Code:
    $a explode("_",get_class($this));
    var_dump($a); 

    Btw.: Beiträge: 1.111 *eine Runde ausgibt *
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Kann vielleicht jemand den Fehler erkennen? Danke im Voraus.
      Ja. Der Fehler ist, eine endlos lange Ausdruckskette zu generieren, die Du selbst nicht mehr verstehst. Benutze Variablen und erarbeite das Ergebnis zeilenweise.

      Alleine schon 3 mal get_class($this) ist Unsinn.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Ich habe den Fehler gefunden. Verstehen tue ich das zwar nicht, aber so schauts aus
        $table = lcfirst(substr(get_class($this), (strpos(get_class($this), "_")+1), strpos(get_class($this), "Manager")-strpos(get_class($this), "_")+1));
        @Nikosch
        sachte sachte, ich habe doch nur etwas rumgespielt.

        Edit: ich habe "aufgeräumt". Endfassung
        $class = get_class($this);
        $table = lcfirst(substr($class, strpos($class, "_") + 1, strpos($class, "Manager") - (strpos($class, "_")+1)));

        Kommentar


        • #5
          Crap.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Was willst du eigentlich genau machen ???

            Code:
            Model_UserManager
            hast du und daraus soll dann was genau rauskommen ?

            Also wenn ich deinen Code oben nehme bekomm ich "user" raus ?
            Soll das heißen du willst den Teil zwischen Model_ und Manager ausschneiden und in kleinbuchstaben umwandeln ?

            Grüße
            Signatur:
            PHP-Code:
            $s '0048656c6c6f20576f726c64';
            while(
            $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

            Kommentar


            • #7
              @Nikosch
              sachte sachte, ich habe doch nur etwas rumgespielt.
              Ja eben. Sinnvoller wäre, systematisch heranzugehen, statt irgendwas hinzupuzzeln.

              1/
              So sähe man, was wann wo passiert:
              PHP-Code:
              <?php

              $class 
              get_class ($this);

              $table lcfirst (substr(
                                      
              $class 
                                      
              strpos ($class "_") + 
                                      
              strpos ($class "Manager") - (strpos($class "_") + 1)
                                      )
                               );
              2/ strpos ($class , "_") + 1 wird doppelt berechnet:
              PHP-Code:
              <?php

              $class 
              get_class ($this);

              $posUnderscore strpos($class "_") + 1;

              $table lcfirst (substr(
                                      
              $class 
                                      
              $posUnderscore 
                                      
              strpos ($class "Manager") - $posUnderscore
                                      
              )
                               );
              3/ Den anderen Kram lagern wir auch gleich aus. Und lcfirst machen wir extra.
              PHP-Code:
              <?php

              $class 
              get_class ($this);

              $posUnderscore strpos ($class "_") + 1;
              $posManager    strpos ($class "Manager");

              $table substr ($class $posUnderscore $posManager $posUnderscore);
              $table lcfirst ($table);
              Voila, ein halbwegs verständliches Codefragment.
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar

              Lädt...
              X