Avatar billede phpbegynder2004 Nybegynder
10. august 2005 - 21:11 Der er 11 kommentarer og
2 løsninger

Variabler i function()

Hej,

Jeg er nybegynder i PHP og prøver at lave en funktion med variabler i. Har dog problemer med at få de forskellige variabler til at virke.

Det ser således ud:

<?
function tablewidth($width) {
$divstart="<div class=\"div1\" style=\"width:$width\">";
$divslut="</center></div>";

$divstart2="<div class=\"div2\" style=\"width:$width\"><font size=\"12\">";
$divslut2="</font></div>";
}
?>

Hvis jeg gerne vil have bredden til at være 120 skriver jeg tablewidth(120);
Men hvordan specifere jeg at det er f.eks $divstart2 jeg vil have fat i?

På forhånd mange tak!
Avatar billede jaw Nybegynder
10. august 2005 - 21:16 #1
Det kan du ikke, for du skal have returnere eller udskrive (eller lign.) noget i en funktion.

F.eks.:

function table($width, $tekst) {
  $str = "<table width='$width'><tr><td>$tekst</td></tr></table>";
  return $str;
}

echo table(120, 'her er teksten eller variablen der indeholder teksten');
Avatar billede jakobdo Ekspert
10. august 2005 - 21:16 #2
Det skal du lige forklare?
Men du at du f.eks. vil kunne vælge om du sætter width på divstart eller divstart2?
Hvis ja, så kan du evt lave noget i stil med:
<?
function tablewidth($width,$which)
{
    switch($which)
    {
        case 1:
            $divstart="<div class=\"div1\" style=\"width:$width\"><center>";
            $divslut="</center></div>";
            break;
        case 2:
            $divstart2="<div class=\"div2\" style=\"width:$width\"><font size=\"12\">";
            $divslut2="</font></div>";
            break;
    }
}
?>
Avatar billede jakobdo Ekspert
10. august 2005 - 21:17 #3
Dog forstår jeg ikke meningen med din function! For du skal vel kunne bruge divstart og divslut et sted?
Avatar billede phpbegynder2004 Nybegynder
10. august 2005 - 21:17 #4
Er der så en anden måde at komme uden om problemet på?
Avatar billede jakobdo Ekspert
10. august 2005 - 21:23 #5
Det kommer jo an på hvad du helt præcist ønsker!
Som jaw viser, så kan du jo "bare" kalde funktionen 2 gange.
Og du kan udbygge functionen til at indeholde font, center, div, b og alle mulige tags.
Avatar billede phpbegynder2004 Nybegynder
10. august 2005 - 21:35 #6
Det er fordi  koden er til nogle to forskellige slags bokse = 2 forskellige Div koder. Jeg har en start og en slutDiv kode til hver. Derfor 4 forskellige koder.
Jeg vil gentage de to bokse mere end et sted hver på siden hver. Men de skal ikke være samme bredde.

jakobdo-> Tak for dit bidrag men hvordan kalder jeg på den?
echo tablewidth(120,2); ??
Avatar billede jakobdo Ekspert
10. august 2005 - 22:01 #7
echo tablewidth(120,1);
eller
echo tablewidth(120,2);
men som jaw er inde på, du skal have noget return, ellers tror jeg slet ikke du kan bruge divstart og slut til noget.
Avatar billede jaw Nybegynder
10. august 2005 - 22:21 #8
Hvorfor så ikke lave et 3. led som er indholdet i div'en?

<?
function tablewidth($width,$which, $tekst)
{
    switch($which)
    {
        case 1:
            $str ="<div class=\"div1\" style=\"width:$width\"><center>";
            $str .= $tekst;           
            $str .="</center></div>";
            break;
        case 2:
            $str ="<div class=\"div2\" style=\"width:$width\"><font size=\"12\">";
            $str .= $tekst;
            $str .="</font></div>";
            break;
    }
    return $str;
}

$divContent = "Indholdet i div";
echo tablewidth(120, 2, $divContent);
?>
Avatar billede jaw Nybegynder
21. august 2005 - 23:59 #9
Er du kommet videre med det så vi kan få lukket spørgsmålet?
Avatar billede phpbegynder2004 Nybegynder
04. september 2005 - 23:56 #10
Ja tak. Folkens der vil have point: læg venligst et svar!
Avatar billede jakobdo Ekspert
05. september 2005 - 08:41 #11
Svar!
Avatar billede jaw Nybegynder
05. september 2005 - 16:10 #12
Erhm, tjoh...
Avatar billede jakobdo Ekspert
17. september 2005 - 23:15 #13
Takker for point!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester