Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion in einem Echo

Einklappen

Neue Werbung 2019

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

  • Funktion in einem Echo

    ich möchte eine funktion in einem echo ausführen und zwar wie folgt:

    Funktion:
    PHP-Code:
    <?
    function lnk()
    {
    srand(microtime()*1000000);
    $zufall = rand(1,85);
    echo "werbung2/".$zufall.".jpg";
    }


    ?>
    das echo:
    PHP-Code:
    echo "[url='http://partner5.de'][img]"lnk();"[/img][/url]"
    Nur leider funktioniert das nicht, ich kann mir einfach nicht erklären bzw. ich hab nirgendswo herrausfinden können wie man funktionen intern
    eines echos ausführt.

    Ich hoffe mir kann jemand weiterhelfen!

    mfg
    Kori

  • #2
    Fehlersuche am falschem Ort würd ich ma sagen:

    PHP-Code:
    echo "Ich "."bin"." ein"." Text"
    Ergo muss es für dich heißen

    PHP-Code:
    echo "<a target=\"_blank\" href=\"http://partner5.de\"><img border=\"1\" src=\"" lnk() . "\"></a> 
    Das man lieber doppelte Anführungszeichen in HTML verwendet, hab ich gleich mal mit korrigiert

    Kommentar


    • #3
      Zitat von Cineplex
      Funktionen werden in Strings genauso wie Variablen und Array behandelt:

      ".Ink()."
      Nun ist die Ausgabe :
      werbung2/57.jpg<img border='1' src=>

      dabei sollte es ja im src="HIER" stehen, wie kann ich das realisieren?

      Kommentar


      • #4
        Zitat von KingCrunch
        Fehlersuche am falschem Ort würd ich ma sagen:

        PHP-Code:
        echo "Ich "."bin"." ein"." Text"
        Ergo muss es für dich heißen

        PHP-Code:
        echo "<a target=\"_blank\" href=\"http://partner5.de\"><img border=\"1\" src=\"" lnk() . "\"></a> 
        Das man lieber doppelte Anführungszeichen in HTML verwendet, hab ich gleich mal mit korrigiert
        Bei dir exakt das gleiche! wie ich ein thread zuvor geschrieben hab!

        Kommentar


        • #5
          PHP-Code:
          <?php function lnk() {

              
          //srand(microtime()*1000000);

              
          $zufall rand(1,85);
              
              
          $src 'werbung2/'.$zufall.'.jpg';

              return 
          $src;
          }
          ?>

          <?php 

          $scr 
          lnk();

          echo 
          '[url="http://partner5.de"][img]'.$scr.'[/img][/url]';

          ?>
          Gruß
          Tine

          Kommentar


          • #6
            Zitat von tinchen
            PHP-Code:
            <?php function lnk() {

                
            srand(microtime()*1000000);

                
            $zufall rand(1,85);
                
                
            $src 'werbung2/'.$zufall.'.jpg';

                return 
            $src;
            }
            ?>

            <?php 

            $scr 
            lnk();

            echo 
            '[url="http://partner5.de"][img]'.$scr.'[/img][/url]';

            ?>
            Gruß
            Tine
            danke, funktioniert bestens!

            Kommentar


            • #7
              srand ist nutzlos (in dem Kontext), da rand die Initialisierung implizit durchführt. Ebenso kann auf $scr verzichtet werden, aber das wurd scho ma erwähnt ^^

              Kommentar


              • #8
                Wieso umständlich, wenn es auch einfach geht?
                Gegen den direkten Zugriff auf die Funktion spricht doch nichts.
                Sicherlich richtig, aber ich persönlich finde es so übersichtlicher.
                Gerade dann, wenn man noch zig Werte verarbeiten sollte.
                Da gibt immer so viele Möglichkeiten etwas aufzuschreiben - bei der Umsetzung scheiden sich sowieso die Geister.

                Ich hatte zwischendurch TV geschaut und etwas länger gebraucht, sonst hätte ich gar nicht erst gepostet.

                Gruß
                Tine

                Kommentar


                • #9
                  Zitat von Cineplex
                  Da kann gar nicht die selbe Fehlermeldung kommen!
                  Die Variante von KingCrunch ist eigentlich richtig.
                  Nein, sie ist nicht richtig.
                  KingCrunch (und Du ) hat übersehen, dass die Funktion Ink() nicht die gewünschte Ausgabe per return zurückliefert, sondern gleich selbst mit echo ausgibt.

                  Da natürlich vor der Ausgabe durch echo erstmal feststehen muss, was ausgegeben werden soll, muss Ink() vorher aufgerufen werden. Dabei wird die Ausgabe erzeugt.
                  Anschließend wird an der Stelle, wo .Ink(). steht, ein leerer Rückgabewert in die Ausgabe eingefügt.

                  Kommentar


                  • #10
                    Ma abgesehen davon, dass du Recht hast, dass ich das echo übersehen habe, liegst du falsch, weil der Aufruf

                    PHP-Code:
                    $scr lnk(); 
                    $scr ebenfalls leer lässt und die Ausgabe der Funktion vor dem eigentlichen Link landet Also genau wie bei mir....

                    Das echo aus der Funktion muss noch in return korrigiert werden

                    Kommentar


                    • #11
                      Deine Version war aber die hier:

                      PHP-Code:
                      <?php
                      echo "<a target=\"_blank\" href=\"http://partner5.de\"><img border=\"1\" src=\"" lnk() . "\"></a>
                      ?>
                      Ohne Zuweisung an eine Variable.

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php function lnk() {

                            
                        $zufall rand(1,85);
                            
                            
                        $src 'werbung2/'.$zufall.'.jpg';

                            return 
                        $src;
                        }
                        ?>
                        Darf ich auch mal was richtig machen? :P

                        Gruß
                        Tine

                        Kommentar


                        • #13
                          Ja, Du hast das ja richtig gemacht.

                          Nur wurde hier darauf rumgehackt, dass der OP angeblich die Lösung von KingCrunch nicht ausprobiert hat.
                          Die berichteten Fehler bei der Version sind aber zutreffend.

                          Deine Lösung war korrekt.

                          Kommentar


                          • #14
                            Ich fühl mich übergangen, wenn man mit mir in der 3ten person schreibt :P

                            PHP-Code:
                            echo "<a target=\"_blank\" href=\"http://partner5.de\"><img border=\"1\" src=\"" lnk() . "\"></a>"
                            Die Auswertungsreihenfolge wäre nun aber folgende: Er versucht das echo auszuführen, findet einen String. Der String ist allerdings konkateniert (Rechtschreibung? ), muss also aufgelöst werden. Bei der Auflösung findet er eine Funktion, muss also erstmal ausgeführt werden. Also wird das echo aus der Funktion als erstes ausgeführt, Rückgabewert leer.

                            PHP-Code:
                            $scr lnk();

                            echo 
                            '[url="http://partner5.de"][img]'.$scr.'[/img][/url]'
                            Auswertungsreihenfolge: Als erstes die Zuweisung, findet ein Funktion, muss ausgeführt werden, echo aus der Funktion wird verarbeitet, Rückgabewert leer. Dann das andere echo, findet Konkatenation, muss er zusammenführen. Ausgabe, fertig, sieht genauso aus wie bei mir ^^

                            Kommentar


                            • #15
                              Zitat von Cineplex
                              Kann man nicht auch die Zahl gleich in den String schreiben?

                              PHP-Code:
                              <?php 
                              function lnk() { 
                                  return 
                              $src 'werbung2/'.rand(1,85); .'.jpg'

                              ?>
                              Das war eine Frage. Bitte beachten!
                              Das kann man vermutlich auch machen. Die ganze Zuweisung kansnt Du dann eigentlich auch gleich weglassen:

                              PHP-Code:
                              <?php 
                              function lnk() { 
                                  return 
                              'werbung2/'.rand(1,85); .'.jpg'

                              ?>
                              Beides ist einfach nur ein Ausdruck, dessen Wert zurückgeliefert wird.

                              Kommentar

                              Lädt...
                              X