Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Function in Function, Automatisch Menu

Pagina: 1
Acties:

Onderwerpen


  • Famous Copra
  • Registratie: April 2010
  • Laatst online: 28-11 22:17
Is er een manier om een standaard functie in een functie te gebruiken?

Zodat hij in dit geval eerst de $title opslaat in de array $menu op de laatste plek
En vervolgens de $title als <h1> opschrijft?
Dit wil ik als code voor een menu waarbij ik dus als


PHP:
1
2
3
4
function Array1 ($title) {
array_push($menu,$title);
echo "<h1>$title</h1>";
}


Dit is dan de functie van mijn menu.
PHP:
1
2
3
4
5
6
7
8
9
10
11
function menu($menu)
{
if (strlen($menu) == 0 )
{
exit();
}
else
{
echo "<li><a href=\"$menu.php\">$menu</a></li>";    
}   
}


alleen nu moet ik dan bij een menu:
menu($menu[0]);
menu($menu[1]);
etc.
opschrijven.

Dus mijn vragen zijn:
- Kan je de function array_push in een zelfgemaakte function gebruiken, en hoe?
- Is dit een goede manier om een automatisch menu te maken?
- En hoe kan ik er voor zorgen dat ik niet menu($menu[0]); etc. moet invullen.
- Dit wil ik allemaal hebben naar aanleiding van de utracker in tweakers. (de zwarte balk links met nieuws 11:36 Samsung kondigt vij nieuwe etc..)

Ik hoop dat het een beetje duidelijk is.

Bij voorbaat dank

[ Voor 0% gewijzigd door NMe op 22-02-2011 12:18 . Reden: Code-tags. ]


  • bstudio
  • Registratie: Oktober 2007
  • Laatst online: 03-12-2022
Dit lijkt me allemaal een beetje ongestructureerd. Als je een automatisch menu wilt maken lijkt me dat je hiervoor waardes uit een database haalt en vervolgens via templating in php toont.

  • Famous Copra
  • Registratie: April 2010
  • Laatst online: 28-11 22:17
Kan je me even vertellen hoe het moet? En wat daarvoor een goede code zou zijn? Ik ben namelijk nog niet heel lang geleden begonnen dus wat bedoel je met templating?
Database en waardes eruit halen snap ik maar templating?

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 27-10 15:31
Nog een tip, mix geen HTML en PHP ;) .
Je kan beter een apart HTML bestand aanmaken, waarbij als PHP iets moet invullen gewoon %textje% gebruiken. Dan kan je in PHP het html bestand inlezen en met str_replace de % plekken invullen. Of natuurlijk gewoon een kant en klaar template systeem gebruiken.

Dus:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

function gettemplate($filename)
{
    $handle = fopen($filename, "r");
    $template = fread($handle, filesize($filename));
    fclose($handle);
    return $template;
}

$pagina=gettemplate("voorbeeld.html");
$pagina= str_replace("%text%", "hello world",$pagina);
echo $pagina
?>

HTML:
1
2
3
4
5
<html>
<body>
%text%
</body>
</html>

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Je gaat de lengte van een string bekijken, maar gooit er een array in? :?

Zet je code eens tussen de [ code ] en [ /code ] tags (zonder de spatie).
Dan word de code al duidelijker zichtbaar, ook zou het gebruik van bijvoorbeeld tabs of spaties niet misstaan.

Met exit(); stopt het gehele script, geef dan gewoon netjes een foutmelding terug.

Als je een function in een function wil maken, kun je je denk ik beter verdiepen in object oriented programming.

[ Voor 3% gewijzigd door CH4OS op 22-02-2011 12:16 ]


  • MindStorm
  • Registratie: Juli 2002
  • Laatst online: 16-01-2024
Famous Copra schreef op dinsdag 22 februari 2011 @ 11:55:

Dus mijn vragen zijn:
- Kan je de function array_push in een zelfgemaakte function gebruiken, en hoe?
- Is dit een goede manier om een automatisch menu te maken?
- En hoe kan ik er voor zorgen dat ik niet menu($menu\[0]); etc. moet invullen.
- Dit wil ik allemaal hebben naar aanleiding van de utracker in tweakers. (de zwarte balk links met nieuws 11:36 Samsung kondigt vij nieuwe etc..)

Ik hoop dat het een beetje duidelijk is.

Bij voorbaat dank
1) ja, gewoon zoals op iedere andere plek
2) templating is beter, zoals bstudio al zegt
3) gebruik een loop (while, for, foreach)

  • Archiebald
  • Registratie: Juni 2006
  • Laatst online: 28-11 08:28

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

  1. Je code kan wel wat indentation gebruiken. Gebruik tabs om aan te geven waar je zit in een structuur. Kort samengevat: elke { betekent dat de regels eronder een extra tab krijgen. Elke } betekent dat alle regels eronder er een minder krijgen. Het is dan veel makkelijker debuggen. ;)
  2. Een functie Array1 noemen is niet bepaald gunstig. Geef een functie altijd een naam die omschrijft wat hij doet. Want anders heb je straks code die aan elkaar hangt van de calls naar Array1, Array5 en Array6 en heb je geen idee wat elke functie nou doet als je even een weekje je code laat liggen. ;)
  3. Waarom een structuur als "if <iets> exit; else <iets anders>"? Waarom niet gewoon die hele else weglaten en die if omkeren, in dit geval door de != operator te gebruiken in plaats van de == operator? Structuren als exit en break vermijd ik altijd zoveel mogelijk; sprongen in code zijn lastiger bij het debuggen.
  4. Hier op GoT kun je code-tags gebruiken voor je code. Je ziet in dit topic wel hoeveel makkelijker leesbaar je code erdoor wordt. ;) Lees Hoe post je code? / Hoe gebruik je de code tag? even door.
  5. Wat bedoel je eigenlijk met "function in function" uit je topictitel? Ik zie dat (gelukkig) niet terug in je code.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1