Rinox Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 Hei! Er ganske ny i PHP, men har kommet ganske langt i boken jeg holder på med. I dette emnet vil jeg poste diverse spørsmål som dukker opp. Mitt første spørsmål er dette: Hva er isset() og hva er empty() ? Takker så mye for svar Lenke til kommentar
Martin A. Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 (endret) isset() og empty(). Manualen er fine greier dere. Men for å forklare med spesifikt. isset() bruker man for å finne ut om en variabel er satt. PHP <?if(isset($_POST['submit'])) { echo "Den er det noen som har trykket på ja"; }else { echo "Ingen har trykket på submitknappen"; } ?> Dette er det mange som bruker når de skal kjøre en kode fra en form. Er jo ingen vits å kjøre scriptet om ingen har trykket på knappen PHP <?if(isset($_POST['submit'])) { if(empty($_POST['navn'])) { echo "Har du ingen navn du da?"; }else { echo "Hei $_POST['navn']"; } }else { echo "<form action='' method='post'> <input type='text' name='navn' value='' /> <input type='submit' name='submit' value='Trykk på meg' /> </form>"; } ?> Her sjekker vi først om brukeren har trykket på knappen. Deretter sjekker vi om brukeren faktisk skrev noe i feltet, gjorde han det, sier vi hei til brukeren. Om ikke mobber vi den navnløse. Er ikke knappen trykket, lager vi en form hvor brukeren kan skrive navnet sitt Endret 5. oktober 2006 av M4rTiN Lenke til kommentar
Rinox Skrevet 5. oktober 2006 Forfatter Del Skrevet 5. oktober 2006 (endret) Hmm... Da skjønner jeg hva empty er. Empty bruker man altså hvis noen ikke har skrevet noe inn... Men skjønner ennå ikke isset... Og når den skal brukes... Endret 5. oktober 2006 av Rinox Lenke til kommentar
Gjest Slettet-df17e Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 isset() er så og si det samme som empty(), men virker litt motsatt empty() sjekker om f.eks en variabel er tom, altså empty isset() sjekker om f.eks en variabel er satt, altså at den har en verdi Som M4rTiN linket til, sjekk php manualen, den forklar alt meget bra. Lenke til kommentar
Rinox Skrevet 5. oktober 2006 Forfatter Del Skrevet 5. oktober 2006 Jeg sjekket php manualen og forsto det litt bedre. Jeg var i tvil om isset var det motsatte og skulle akkurat til å spørre. Begge postene deres hjalp svært mye. La meg nå se om jeg skjønner dette... Empty sjekker altså om en variabel er tom s.eks. en form hvor man skal skrive inn brukernavn eller passord. Isset er da det motsatte og ved å sjekke om en variabel er satt kan den blant annet brukes til å sjekke om brukernavnet eller passordet i en form ER skrevet inn. Er dette riktig? Lenke til kommentar
Peter Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 (endret) PHP peter@smurf:~$ php -a Interactive mode enabled <?php $myvar = ""; var_dump( isset( $myvar ) ); bool(true) var_dump( empty( $myvar ) ); bool(true) ?> isset er dermed ikke det motsatte av empty. isset sjekker at variabelen eksisterer, og at den ikke er satt til NULL. empty sjekker at variabelen er tom. Definisjonen på tom: "" (an empty string)0 (0 as an integer) "0" (0 as a string) NULL FALSE array() (an empty array) var $var; (a variable declared, but without a value in a class) Du kan ikke myse gjennom manualen og anta ting, da går det fort galt. Endret 5. oktober 2006 av Nazgul Lenke til kommentar
Rinox Skrevet 5. oktober 2006 Forfatter Del Skrevet 5. oktober 2006 Takk Men i en av kodene i boken jeg leser (webprogrammering i php) sto det et utropstegn foran isset.. Hva er det? !isset() Lenke til kommentar
Peter Skrevet 5. oktober 2006 Del Skrevet 5. oktober 2006 Det gir motsatt sannhetsverdi, står ikke dette i boken? Dersom isset() returnerer bool(true), returnerer !isset() bool(false) Lenke til kommentar
Rinox Skrevet 5. oktober 2006 Forfatter Del Skrevet 5. oktober 2006 Nei, det sto ikke... Kanskje det står litt mer om det i et annet kapittel... Tusen takk Lenke til kommentar
Equerm Skrevet 6. oktober 2006 Del Skrevet 6. oktober 2006 Utrposegnet betyr på en måte "ikke" f.eks <?php if(!$var = "TRUE") { echo "Variabelen er ikke TRUE"; } ?> Lenke til kommentar
Rinox Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 Takk Nå har jeg lært meg det sånn passe Så til mitt neste spørsmål: Skjønner ikke elt dette med foreach... Hvordan fungerer det? Og hva gjør det? Tusen takk for svar Lenke til kommentar
Peter Skrevet 6. oktober 2006 Del Skrevet 6. oktober 2006 http://no.php.net/foreach Mistenker at du ikke slår opp i manualen, alt står jo glimrende forklart der. Særlig er det enkelt å finne frem til funksjoner og konstruksjoner, så PRØV ihvertfall før du spør. Lenke til kommentar
Rinox Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 (endret) Men jeg er litt forvirret skjønner du... Hva kan jeg forestille meg at as betyr i denne sammenhengen? Er foreach en måte å lage variabler i en matrise? Eller er den en måte å lage nye verdier til en nøkkel? Hvordan ville dere beskrive det? Endret 6. oktober 2006 av Rinox Lenke til kommentar
Knebba Skrevet 6. oktober 2006 Del Skrevet 6. oktober 2006 as gjør arrayverdien om til en variabel. for hver gang løkken kjøres gjennom går den et hakk videre i arrayet og gjør det om til variabelen. $array as $variabel Lenke til kommentar
Rinox Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 Hmm.. Leste enda mer nøyaktig på en annen side jeg fant. ar lest gjennom den 3 ganger nå, men jeg vet ikke om jeg forstår... Bruker man array til å hente ut variabler fra en matrise? Lenke til kommentar
Rinox Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 (endret) foreach går gjennom matrisen som som blis stilt opp før as, sant? Dette skjønner jeg, men hva foreach skal med "as $key => $value" skjønner jeg ikke... Hva er den delen til? Beklager at jeg er så håpløs i dette Endret 6. oktober 2006 av Rinox Lenke til kommentar
Rinox Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 (endret) Nå tror jeg endelig at jeg forstår det, men jeg må få bekreftet at det er riktig. Hvis vi tar for oss at jeg har laget disse kodene: <?php $matrise = array('Carfreak' => 1200, 'Firefox' => 17); foreach ($brukerdatabase as $brukernavn { echo $brukernavn '<br>'; } ?> <?php $brukerdatabase = array('Carfreak' => 1200, 'Firefox' => 17); foreach ($brukerdatabase as $brukernavn => $innlegg { echo $brukernavn.' har ca '.$innlegg.' innlegg <br>'; } ?> I den første koden vil alle brukerne i $brukerdatabase bli listet opp under hverandre. Men i den andre koden vil brukerne bli listet opp og det vil stå hvor mange innlegg de har i et forum. Er dette riktig? I så fall har jeg endelig skjønt det. Er det riktig? Endret 6. oktober 2006 av Rinox Lenke til kommentar
Peter Skrevet 6. oktober 2006 Del Skrevet 6. oktober 2006 (endret) array er en liste med variable, ikke sant? for å plukke ut en spesiell variabel i listen, må du bruke en "nøkkel" (key), som sier hvilket nummer/rad i listen du ønsker å se på. f.eks. PHP <?php $myarr = array('en', 'gul', 'ost'); ?> Her har vi et array med numeriske nøkler, i dette tilfellet 0, 1, 2. [0] = 'en'; [1] = 'gul'; [2] = 'ost'; Dersom jeg vil ha verdien 'gul',må jeg bruke nøkkelen 1 I tillegg til å ha numeriske nøkler, kan du ha andre typer nøkler for et array, strenger f.eks. PHP <?php $myarr = array('en', 'gul', 'ost'); ?> Dette arrayet ser slik ut ['key1'] = 'en'; ['min2'] = 'gul'; ['my3'] = 'ost'; Dette kalles et assosiativt array, fordi du assosierer(forbinder) en strenge(nøkkelen) med en verdi. (Verdien står på høyre(->) side av likhetstegnet) Så, til foreach: Foreach går igjennom hele arrayet, fra start til slutt (med mindre du avbryter) For hver verdi, eksekveres "kroppen" til foreach, eks. PHP <?php $myarr = array('en', 'gul', 'ost'); ?> Konsktruksjonen foreach($myarr as $key =>$value) gjør omtrent det samme, bare at her har du i tillegg tilgang til nøkkelen til hver verdi. Dette brukes som oftest når man har et assosiativt array. Tror ikke jeg klarer å forklare noe klarere enn dette, kanskje noen andre har noe å tilføye. Så for å svare på spørsmålet ditt. Kode nr. én er feil, mens kode nr. to er riktig. Endret 6. oktober 2006 av Nazgul Lenke til kommentar
Rinox Skrevet 6. oktober 2006 Forfatter Del Skrevet 6. oktober 2006 Takk Men jeg har sett noen steder at folk bare skriver $matrise as $key Hvorfor det? Og hva er forskjellen? Lenke til kommentar
hockey500 Skrevet 6. oktober 2006 Del Skrevet 6. oktober 2006 (endret) jeg mistenker deg for å ikke lese boka godt nok, for det står forklart der. foreach($array as $key => $value) Henter ut både indeksverdien fra arrayet og lagrer til variabelen $key, lagrer selve verdien i variabelen $value foreach($array as $value) gjør som den forrige, men henter ikke ut nøkkelen. Eksempel: KODE: $array[0] = "Verdi 1"; // første nøkkelen er 0, hvis ikke annet spesifiseres $array[1] = "Verdi 2"; $array[2] = "Verdi 3"; foreach($array as $value) echo $value . "<br />"; OUTPUT: Verdi 1 Verdi 2 Verdi 3 ------------------------------------------------------------------- KODE: $array[0] = "Verdi 1"; // første nøkkelen er 0, hvis ikke annet spesifiseres $array[1] = "Verdi 2"; $array[2] = "Verdi 3"; foreach($array as $key => $value) echo $key . ': ' . $value . "<br />"; OUTPUT: 0: Verdi 1 1: Verdi 2 2: Verdi 3 Endret 6. oktober 2006 av hockey500 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å