TheClown Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 (endret) Heisann. Nuub-scripter litt forsatt jeg. Nå har jeg bare lagd et script for morroskyld for å prøve å teste ut if og else og å sette { og } riktig. Men det gikk ikke HELT slik jeg trodde. Bladd litt rundt nå, men finner ikke ut hvordan man gjør det riktig. Kan noen hjelpe meg PLX? <? $Name = "Thomas"; $Mellomnavn = "Kent"; $Etternavn = "Remy"; { if ($Name == "Thomas") { if ($Mellomnavn == "Kent") { if ($Etternavn == "Remy") echo "Ditt navn er $Etternavn , $Name $Mellomnavn"; } { if ($Etternavn !== "Remy") echo "Ditt navn er $Mellomnavn , $Name . <br /> Men ikke $Etternavn , $Name $Mellomnavn"; } { if ($Mellomnavn !== "Kent") { if ($Etternavn == "Remy") echo "Ditt navn er ikke $Etternavn , $Name $Mellomnavn . <br /> Men $Etternavn , $Name"; } { if ($Etternavn !== "Remy") echo "Ditt navn er ikke $Mellomnavn , $Name . <br /> Men $Name"; } } ?> Testside: http://vikings-of-norway.com/Navn.php Kan noen også hjelpe meg med å sette inn else hvis ingen av if'ene stemmer slik at scriptet slutter? Fikk bare feilmeldinger på det også. . . - Thomas Endret 3. mai 2007 av TheClown Lenke til kommentar
itsmebth Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 (endret) PHP <?phpif($txt == "..."){ doSomeThing(); } else { doSomeThingElse(); } ?> Endret 3. mai 2007 av itsmebth Lenke til kommentar
Bakke Skrevet 3. mai 2007 Del Skrevet 3. mai 2007 (endret) Bare et tips, det kan skape problemer med variabler inne i en string. F.eks: echo "Ditt navn er $Etternavn , $Name $Mellomnavn"; Kan skrives som: echo "Ditt navn er {$Etternavn} , {$Name} {$Mellomnavn}"; eller echo "Ditt navn er " . $Etternavn . " , " . $Name . " " . $Mellomnavn; Endret 3. mai 2007 av mhbakke Lenke til kommentar
BlueEAGLE Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Jeg ser at du har fått svar på hvordan, men jeg mener at det er greiere å huske hvordan ting virker hvis man også vet _hvorfor_ det er sånn. Først {}. De brukes i hovedsak til tre ting i PHP. a) "Kroppen" til klasser og funksjoner må være definert med { og }. function MyFunction($argument) { //Start blokk echo "Code goes in here."; } //Slutt blokk b) En gruppe kommandoer som står mellom {} kalles en blokk. En blokk regnes som en kode-enhet. Blokker brukes ikke bare til å definere kroppen til klasser og funksjoner, men også når du har flere ting du vil gjøre etter at du har utført en sjekk eller om du vil gjøre flere ting i en løkke. if ($check === true) { echo "Check is true"; $variable = function('argument'); } else echo "Check is false"; Som du ser her så trenger du ikke { og } når det kun er _en_ linje som følger etter else, men man kunne ha skrevet... else { echo "Check is false"; } Personlig så mener jeg det siste er en god regel fordi det fjerner den typen feil som gjerne oppstår klokken fire på natten. c) For å interpolere assosiative matriser i en streng. $myArray = array('navn' => 'BlueEagle', 'sted' => 'Alta'); echo "Jeg heter {$myArray['navn']} og kommer fra {$myArray['sted']}."; Normalt så kan man skrive echo "variabelen: $myArray[0]" om man har nummerisk indeks, men når man skal bruke strenger i indeksen så må man definere variabelen innenfor krølleparantheser. Du kan (men jeg anbefaler det IKKE)i de fleste tilfeller skrive echo "Jeg heter $myArray[navn] og kommer fra $myArray[sted]"; men dette er _IKKE_ riktig. Grunnen til at det fungerer er at PHP sjekker etter konstantene navn og sted og om de ikke er definert så bruker den strengverdiene 'navn' og 'sted'. Dette vil ikke virke slik man vil tro om noen plutselig definerer en konstant med det navnet. Du kan heller ikke bruke reserverte ord uten å bruke '-er rundt strengen. Håper det forklarer saken litt bedre. c",) Lenke til kommentar
Ståle Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Bare et tips, det kan skape problemer med variabler inne i en string. F.eks: echo "Ditt navn er $Etternavn , $Name $Mellomnavn"; Kan skrives som: echo "Ditt navn er {$Etternavn} , {$Name} {$Mellomnavn}"; eller echo "Ditt navn er " . $Etternavn . " , " . $Name . " " . $Mellomnavn; 8533128[/snapback] Jeg har laert at PHP sjekker strings som bruker " " for variabler. Derfor burde det vel ga fint med echo "Ditt navn er $Etternavn , $Name $Mellomnavn"; echo 'Ditt navn er $Etternavn , $Name $Mellomnavn'; derimot... echo ' '; er ogsa bittelitt raskere enn echo " "; Hvorfor skal man bruke { } rundt variablene. Gjelder dette ogsa inni echo ' '; ? Lenke til kommentar
Bakke Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Jeg har faktisk bare støtt på dette problemet med vanlige hermetegn ("), men trodde uansett php ville få problemer med å skille variabler og string (dvs variabel navnet vil bli en del av stringen, ikke innholdet) Men kan godt hende at det fungerer med echo 'Noe $variabel';... Lenke til kommentar
Martin A. Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Jeg har faktisk bare støtt på dette problemet med vanlige hermetegn ("), men trodde uansett php ville få problemer med å skille variabler og string (dvs variabel navnet vil bli en del av stringen, ikke innholdet) Men kan godt hende at det fungerer med echo 'Noe $variabel';... 8534641[/snapback] PHP <?php $foo = "bar"; echo 'Dette er noe $foo'; // Returnerer "Dette er noe $foo" echo 'Dette er noe {$foo}'; // Returnerer "Dette er noe {$foo}" echo "Dette er noe $foo"; // Returnerer "Dette er noe bar" echo "Dette er noe {$foo}"; // Returnerer det samme som over ?> Bruker man enkeltsnutter går teksten tvers igjennom PHP-parseren, og ingenting blir parset. Bruker man dobbelsnutter blir teksten parset, og verdien til variablene følger med. Lenke til kommentar
Ståle Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 PHP <?php echo "Dette er noe $foo"; // Returnerer "Dette er noe bar" echo "Dette er noe {$foo}"; // Returnerer det samme som over ?> 8534819[/snapback] Hva er forskjellen pa de to? Og nar brukes de? Lenke til kommentar
Martin A. Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 PHP <?php echo "Dette er noe $foo"; // Returnerer "Dette er noe bar" echo "Dette er noe {$foo}"; // Returnerer det samme som over ?> 8534819[/snapback] Hva er forskjellen pa de to? Og nar brukes de? 8536035[/snapback] Et godt spørsmål som jeg ikke har noe svar på. Eneste jeg vet er at IPB bruker det for å printe variabler i templates. Men har selv aldri brukt det i noen av mine script. Lenke til kommentar
Runar0 Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 (endret) Klikk for å se/fjerne innholdet nedenfor PHP <?php echo "Dette er noe $foo"; // Returnerer "Dette er noe bar" echo "Dette er noe {$foo}"; // Returnerer det samme som over ?> 8534819[/snapback] Hva er forskjellen pa de to? Og nar brukes de? 8536035[/snapback] Et godt spørsmål som jeg ikke har noe svar på. Eneste jeg vet er at IPB bruker det for å printe variabler i templates. Men har selv aldri brukt det i noen av mine script. 8536892[/snapback] Du skal bruke {} når du skal skrive ut ein variabel fra ein array med tekst index. Eksempel: PHP <?php $foo['bar'] = "bar"; echo "Dette er noe $foo['bar']"; /* Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in H:PHP Projectsarraytest.php on line 5 */ echo "Dette er noe {$foo['bar']}"; // Returnerer Dette er noe bar ?> Edit; Edit funksjonen fungerer ikkje rett :/ Endret 4. mai 2007 av Shadows0 Lenke til kommentar
Ståle Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 // Returnerer det samme som over altsa Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in H:PHP Projectsarraytest.php on line 5 ? Da er det jo ikke noe vits Lenke til kommentar
Runar0 Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Beklager det glemte å endre kommentaren, fikset no Lenke til kommentar
Crowly Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Som du ser her så trenger du ikke { og } når det kun er _en_ linje som følger etter else, men man kunne ha skrevet... Det gjelder ikke bare etter else, men i if, while og sikkert en del andre funksjoner eks PHP <?phpif ($test==1) noe; else noe_annet; $i=0; while ($i<5) echo $i++; ?> Men som nevnt så kan det være litt mer ryddig og lett lest å bruke { } Lenke til kommentar
jorgis Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Klikk for å se/fjerne innholdet nedenfor PHP <?php echo "Dette er noe $foo"; // Returnerer "Dette er noe bar" echo "Dette er noe {$foo}"; // Returnerer det samme som over ?> 8534819[/snapback] Hva er forskjellen pa de to? Og nar brukes de? 8536035[/snapback] Et godt spørsmål som jeg ikke har noe svar på. Eneste jeg vet er at IPB bruker det for å printe variabler i templates. Men har selv aldri brukt det i noen av mine script. 8536892[/snapback] Du skal bruke {} når du skal skrive ut ein variabel fra ein array med tekst index. Gjelder også ved bruk av objekter, eller bruk av statiske metoder (tror jeg); $bruker = new Bruker; echo "Hei, {$bruker->brukernavn}. Du var her sist {$bruker->sist_sett->to_str} dager siden"; echo "Hei, foo! {Bruker::statisk_metode()}!"; Det er i hvert fall en god regel å slenge {} rundt variabler som puttes i strenger, blant annet fordi det er lettere å finne igjen variablene senere, de blir mer synlige i koden. Lenke til kommentar
Ståle Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Hvis du bruker feks Notepad2 blir de bla Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå