Kalle_B: Fehler: Funktion gibt array zurück

Hallöle,

habe den Fehler
Parse error: syntax error, unexpected '[', expecting ',' or ';'

auf dieser Zeile:
echo jjjj_mm_tt2array( $row['tag'] )[0].'<br>';

die Funktion lautet:
function jjjj_mm_tt2array ( $date ) // DB-Typ date
// 2006-12-31 wird zu array 31.12. / 2006 / 06 / 7  0=Mo .. 7=So
{
  $arr = array(
    substr( $date,8,2 ).".".substr( $date,5,2 )."."
   ,substr( $date,0,4 )
   ,substr( $date,2,2 )
  );
  return $arr;
}

Wie hole ich das erste Element aus dem Array?

Und wie ermittle ich den Wochentag 0..7 ?

Gruß, Kalle

  1. Hi,

    $arr = array(
        substr( $date,8,2 ).".".substr( $date,5,2 )."."

    hm, ich würde hier explode nutzen.

    Und wie ermittle ich den Wochentag 0..7 ?

    mit date

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
  2. echo jjjj_mm_tt2array( $row['tag'] )[0].'<br>';

    $arr=jjjj_mm_tt2array( $row['tag'] );

    echo $arr[0];

  3. Hi,
    wie du selber geschrieben hast:

    die Funktion lautet:
    function jjjj_mm_tt2array ( $date ) // DB-Typ date

    was soll dann das hier?

    echo jjjj_mm_tt2array( $row['tag'] )[0].'<br>';

    Ich weiß wohl, was du damit vorhast, aber du hast doch oben selber geschrieben, dass jjjj_mm_tt2array eine Funktion ist und kein Array.

    Du willst ja das erste Element des Arrays ausgeben und nicht das erste Element der Funktion oder?
    Also musst du schon mit der Variablen $arr arbeiten und dann von diesem das erste Element ausgeben.

    Schau dir am besten Mal in den zahlreichen PHP-Tutorials, die es im Netz gibt, de Array-Funktionen an.

    Grüße,
    Thorsten F.

    1. hi,

      was soll dann das hier?

      echo jjjj_mm_tt2array( $row['tag'] )[0].'<br>';

      Ich weiß wohl, was du damit vorhast, aber du hast doch oben selber geschrieben, dass jjjj_mm_tt2array eine Funktion ist und kein Array.

      Ja, aber sie liefert ja ein Array zurück ...

      So eine Notation ist in anderen Sprachen durchaus üblich - aber PHP beherrscht diese m.W. nicht.
      Da muss also wirklich die Array-Rückgabe erst irgendwo zwischengespeichert, und dann darüber auf die Elemente zugegriffen werden.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
    2. echo $begrüßung;

      echo jjjj_mm_tt2array( $row['tag'] )[0].'<br>';
      Ich weiß wohl, was du damit vorhast, aber du hast doch oben selber geschrieben, dass jjjj_mm_tt2array eine Funktion ist und kein Array.

      Nun ja ... sie gibt ein Array zurück, und in einigen anderen Programmiersprachen kann man dann sofort nach obiger Methode auf die Elemente zugreifen, ohne das Array erst in einer Variable ablegen zu müssen. Bei PHP geht dies aber nicht. Möchte man das Element in einer Variable haben, kann man zumindest dies mit list() erreichen.

      Mittlerweile (seit Version 5) kann man wenigstens auf von Funktionen zurückgegebene Objekte direkt weiter zugreifen: $x = func()->object_property; oder $x = func()->method();

      echo "$verabschiedung $name";