Gå til innhold

Diverse spørsmål fra en nybegynner


Anbefalte innlegg

Videoannonse
Annonse

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 av M4rTiN
Lenke til kommentar
Gjest Slettet-df17e

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

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

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 av Nazgul
Lenke til kommentar

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 av Rinox
Lenke til kommentar

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 av Rinox
Lenke til kommentar

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 av Nazgul
Lenke til kommentar

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 av hockey500
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...