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 *

    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.

      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.

          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

            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.

              Kommentar

              Lädt...
              X