Karinna: Ausgabe einer kleinen Funktion klappt nicht korrekt

Ich würde genre der einfachhalber folgendes in eine funktion packen

<a ';
if('diese_seite'==$seite) echo'style="border:4px solid #000;"';
echo' href="seite.htm">seite</a>

Diese urfe ich so auf

echo' <a '.Aktiv('diese_seite',$seite).' href="seite.htm">seite</a>';

und das wäre die function

function Aktiv ($link,$seite)
{
if($link==$seite) echo'style="border:4px solid #000;"';
}

Doch es ist wie verückt, es schreibt mir zar die Ausgabe hin, aber nicht in den Link sondern vor ihn und gibt es aus, so das man es im Browser lesen kann, doch es sollte doch innerhalb der URL stehen.

Karinna

  1. Tach!

    Doch es ist wie verückt, es schreibt mir zar die Ausgabe hin, aber nicht in den Link sondern vor ihn und gibt es aus, so das man es im Browser lesen kann, doch es sollte doch innerhalb der URL stehen.

    Informiere dich über das Grundprinzip von Funktionen.

    PHP ist gerade dabei, deinen Ausdruck mit dem Funktionsaufruf drin auszuwerten. Du hast da ja eine Stringverknüpfung gefordert. Dazu wird die Funktion aufgerufen, weil deren Ergebnis Bestandteil der Verknüpfung sein soll. Sie liefert aber nichts zurück, stattdessen gibt sie etwas aus. Nun wird der Ausdruck mit den Nicht-Ergebnis zu Ende ausgewertet und anschließend ausgegeben.

    dedlfix.

  2. so gehts bei deiner Vorgabe

    function Aktiv ($link,$seite)
    {
    if($link==$seite) link='style="border:4px solid #000;"';
    return $link;
    }