Sönke Tesch: datums funktion

Beitrag lesen

<?

function datum($c_date)
 {

$get_date=getdate();
 $c_date="$dat[mday].$dat[mon].$dat[year]";
 }

?>

<? $create_datum(call_user_func("datum",$c_date);) ?>

a-----^
b--------------------------------------------------^
c-------------------^

a) Mit $ leitet man eine Variable ein, keine Funktion, es muß also create_datum() lauten, nicht $create_datum().
b) Das Semikolon soll sicher eine Stelle weiter nach hinten.
c) call_user_func() ist überflüssig, in allen modernen Programmiersprachen kann man auch eigene Funktionen direkt aufrufen.

Summa sumarum wird aus Deiner letzten Zeile:

datum($c_date);

Dann hast Du allerdings noch das Problem, daß $c_date im Hauptteil des Skripts seinen Wert nicht ändern wird. Es wird nur der Inhalt von $c_date an datum() übergeben, nicht die Variable selber. Somit kann datum() auch nur mit dem Inhalt (in einer eigenen, lokalen Variable $c_date) arbeiten, aber nicht mit der Variable $c_date aus dem Hauptteil selber (und ihr somit auch keinen neuen Wert verpassen).
Du solltest Deine datum()-Funktion so ändern, daß sie einen Wert zurück gibt.

Weiterhin funktioniert das Innenleben von datum() eh nicht, weil Du erst das aktuelle Datum in $get_date speicherst, dann aber diese Datumsdaten nicht wieder aus $get_date ausliest sondern aus einem völlig unbeteiligten (genauer: leeren) Feld namens $dat.

Also:

function datum()
   {
    $dat=getdate();
    return $dat["mday"].".".$dat["mon"].".".$dat["year"];
   };

Und im Hauptteil:

$c_date=datum();

Gruß,
  soenk.e