[php] newbie vraag: arrays

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Ik probeer een functie te maken die gebruik maakt van een globaal gedefinieerde array:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  $asMonthName = array(1 =>'januari',
    'februari',
    'maart',
    'april',
    'mei',
    'juni',
    'juli',
    'augustus',
    'september',
    'oktober',
    'november',
    'december',
    );

  function monthName($i){
    return "de maand $asMonthName[$i]<br>\n";
  }

  print "de maand $asMonthName[10]<br>\n";
  print monthName(10);


hij moet volgens mij twee keer de regel "de maand oktober" weergeven, maar de tweede keer is de inhoud van $asMonthName[10] leeg en krijg ik dus:
de maand oktober
de maand
Hoe moet ik die array aanroepen?

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

door hem bijvoorbeeld global te maken ;)
hoewel ik dat niet echt een mooi manier vind eerlijk gezegt ;)

PHP:
1
2
3
4
  function monthName($i){
     global $asMonthName;
     return "de maand $asMonthName[$i]<br>\n";
  }



http://www.php.net/manual/en/language.variables.scope.php

[ Voor 17% gewijzigd door Erkens op 16-02-2003 14:58 ]


Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Erkens schreef op 16 februari 2003 @ 14:57:
hoewel ik dat niet echt een mooi manier vind eerlijk gezegt ;)
Ik sta open voor verbeteringen!

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

Verwijderd

Je zou die array mee kunnen geven als argument van de functies waarin je de array gebruikt, dat scheelt je al 1 vieze globale variabele.

Acties:
  • 0 Henk 'm!

  • Stubby
  • Registratie: Januari 2002
  • Laatst online: 10:09
edit:

hier stond iets heel stoms


je moet de array in de functie zetten als je hem alleen daar gebruikt, anders gewoon meegeven als argument

[ Voor 74% gewijzigd door Stubby op 16-02-2003 15:04 ]


Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$asMonthName = array(
      'januari', 
      'februari', 
      'maart', 
      'april', 
      'mei', 
      'juni', 
      'juli', 
      'augustus', 
      'september', 
      'oktober', 
      'november', 
      'december' 
      ); 

function Maand($ID)
{
     global $asMonthName;
     echo $asMonthName[$ID] ."<br>\n";
}


Had je al aan strf_time gedacht? met setlocale?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

majornono schreef op 16 February 2003 @ 14:59:
[...]


Ik sta open voor verbeteringen!
PHP:
1
2
3
4
function monthName($maand){
    setlocale (LC_ALL, 'nl_NL');
    return = date ("m", mktime(0,0,0,$maand,1,2003));
}


heb het even uit het hoofdgedaan (met phpmanual ernaast uiteraard :P) maar niet getest ;)

Acties:
  • 0 Henk 'm!

Verwijderd

return = date ("m", mktime(0,0,0,$maand,1,2003));
:?

Acties:
  • 0 Henk 'm!

Verwijderd

Als je iets uit je hoofd opschrijft/typt, kun je af en toe een foutje maken toch?

Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Dit wordt het dan Erkens:
PHP:
1
2
3
4
function monthName2($maand){
    setlocale (LC_ALL, 'nl_NL');
    return date ("F", mktime(0,0,0,$maand,1,2003));
}

maar hij geeft dan nog steeds de engelse maand naam weer

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

Verwijderd

Dit is wel een errug domme. date(m) doet ten eerste gewoon een numeric terug en tenm tweede vind ik return = wel heel raar. Maar goed.
edit: net te laat

[ Voor 7% gewijzigd door Verwijderd op 16-02-2003 15:18 . Reden: Te laat ]


Acties:
  • 0 Henk 'm!

Verwijderd

Vervang date maar door strftime...

dan zou het mijns inziens ongeveer moeten werken :)

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 16 februari 2003 @ 15:16:
Dit is wel een errug domme. date(m) doet ten eerste gewoon een numeric terug en tenm tweede vind ik return = wel heel raar. Maar goed.
edit: net te laat
sjonge jonge lopen blaten over een = teken dat er teveel staat :/
maak jij nooit typo's :?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

majornono schreef op 16 February 2003 @ 15:14:
Dit wordt het dan Erkens:
PHP:
1
2
3
4
function monthName2($maand){
    setlocale (LC_ALL, 'nl_NL');
    return date ("F", mktime(0,0,0,$maand,1,2003));
}

maar hij geeft dan nog steeds de engelse maand naam weer
moest idd een F zijn, even overheen gekeken in de manual ;)
dan heb je geen nederlands in je php zitten ofzo denk ik

Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
Jawel hoor Erkens. Maar het gaat natuurlijk niet om een = teken. Het gaat erom dat je iemand helpt door van een numerische datum weergave een precies dezelfde numerische datumweergave te maken. Dat vind ik dan raar. Snappie? Was geen persoonlijke aanval ofzo hoor. Ik heb alleen zoiets van: als je iemand helpt doe het dan goed. Snappie?


majorono, let op wat Denial zegt.

[ Voor 10% gewijzigd door Verwijderd op 16-02-2003 15:23 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 16 February 2003 @ 15:22:
offtopic:
Jawel hoor Erkens. Maar het gaat natuurlijk niet om een = teken. Het gaat erom dat je iemand helpt door van een numerische datum weergave een precies dezelfde numerische datumweergave te maken. Dat vind ik dan raar. Snappie? Was geen persoonlijke aanval ofzo hoor. Ik heb alleen zoiets van: als je iemand helpt doe het dan goed. Snappie?


majorono, let op wat Denial zegt.
duwtje in de goede richting was het ;) Snappie?

Acties:
  • 0 Henk 'm!

  • majornono
  • Registratie: Juni 2002
  • Laatst online: 10-03-2023
Thanxs allemaal, Denial Had gelijk: strftime did the job :)

Problem Exists Between Chair And Keyboard


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

zie ook http://www.codebase.nl/index.php/command/viewcode/id/188 waar ik een functie heb geplaatst die wel andere talen mbv date() aankan; als het kan is het inderdaad beter om strftime te gebruiken.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08 16:29

Tim

Verwijderd schreef op 16 februari 2003 @ 15:22:
offtopic:
Jawel hoor Erkens. Maar het gaat natuurlijk niet om een = teken. Het gaat erom dat je iemand helpt door van een numerische datum weergave een precies dezelfde numerische datumweergave te maken. Dat vind ik dan raar. Snappie? Was geen persoonlijke aanval ofzo hoor. Ik heb alleen zoiets van: als je iemand helpt doe het dan goed. Snappie?
Je had dan natuurlijk in plaats van alleen een :? ook kunnen typen wat er fout aan was.
Pagina: 1