Avatar billede alex15 Nybegynder
26. oktober 2007 - 09:48 Der er 9 kommentarer og
1 løsning

Hvad betyder "isset"? Begynder spørgsmål

Hej

Sidder og er i gang med at lærer php. Og har lige lavet dette:

<html>
<body>

<?php

$tal = 10;
if ($tal == 10){
    echo "Tillykke det skulle virke";
}

$tal = 10;
if (isset($tal == 10)){
    echo "Skulle også virke";
}


?>

</body>
</html>

-

En ting er at det giver fejl, men en anden ting er at jeg ikke rigtig forstår hvad isset betyder? Så mit spørgsmål var om der ikke var en venlig person her inde som gav svare på sådan et spørgsmål?
Avatar billede uggi16 Nybegynder
26. oktober 2007 - 09:59 #1
http://dk2.php.net/isset

Det står her:

Returns TRUE if var exists; FALSE otherwise.

Den tjekker bare om variablen findes eller ej.
Avatar billede alex15 Nybegynder
26. oktober 2007 - 10:11 #2
Så den gør altså bare det at den tester om der er en variabel, forstået på denne måde:

<?php

$tal = '' //skal der mellem de to '' ikke være en navn eller et tal?
if (isset($tal)){
  echo "Nu skulle den foresætte da der findes noget der hedder $tal"
}

arh. mit engelske er ikke så godt..! Synes det er lidt svært og forstå.! Du kunne ikke give et eksempel?
Avatar billede alex15 Nybegynder
26. oktober 2007 - 10:18 #3
$var = '';
if (isset($var)) {
    echo "This var is set so I will print.";
}

// Her går isset ind og ser om der overhoved findes noget der hedder $var right?
// og hvis der findes noget som hedder det, skriver den sætningen "This var is set so
// i will print" ikke?
// Men hvad så med resten af formlen?

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));    // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));  // FALSE

//Den forstår jeg ikke rigtig?
Avatar billede uggi16 Nybegynder
26. oktober 2007 - 10:32 #4
Ser vi på det første, som er det du kan bruge... tjekker isset om der er en variabel der hedder $var og at den ikke er NULL altså at den er sat til en værdi...

Resten er lige meget :)
Avatar billede alex15 Nybegynder
26. oktober 2007 - 10:39 #5
Ja okay.

Og hvad gør den så hvis $var = 9 ??

Det prøvede jeg lige, men det gjorde jo ikke nogen forskel? Den skrev stadigvæk teksten "This var is set so I will print."
Avatar billede alex15 Nybegynder
26. oktober 2007 - 10:43 #6
arh. nu tror jeg måske jeg forstår det..

isset går rent og skær ind og kigger om der overhoved er en variabel som hedder f.eks. $var og hvis der så er det, kunne den som i dette eksempel skrive "This var is set so I will print.".

Hvor i mod !isset går ind og kigger på det total modsatte, nemlig: hvis der ikke er en som hedder $var ..  Så går den ind og skriver sætningen?

Rigtig forstået?
Avatar billede alex15 Nybegynder
26. oktober 2007 - 11:01 #7
Kan ikke rigtig få nedenstående til at virke, den skulle virke så php går ind og kigger om der er indtastet en karakter, og hvis det er det, så tjekker den om den karakter ligger til at bestå eller ej, men hvis der ikke er tastet nogen karakter skriver den følgenden tekst. "Du har ikke fået en karakter endnu, ellers kan det være fordi den er indtastet forkert". hvad har jeg gjort forkert?

<html>
<body>

<?php

$karakter = '00. 03. 5. 7. 8. 9. 10. 11. 13';

if (isset(karakter = 8)){
if ($karakter >5) {
    echo "Tillykke du har bestået!";
    echo "<br>";
} else {
    echo "Desværre! Du dumpede!";
    echo "<br>";
}
    echo "Du har ikke fået en karakter endnu, ellers kan det være fordi den er indtastet forkert";
?>

</body>
</html>
Avatar billede uggi16 Nybegynder
26. oktober 2007 - 12:57 #8
Det der vil man gøre sådan:

<?PHP
// Vi opretter lige en funktion, hvis du nu skal bruge det flere steder.
public function findkarakter($karakter)
{
//empty() tjekker for om en variabel er NULL eller "" altså tom, eller om den overhovedet findes
if(!empty($karakter))
{
    //Hvis karakteren findes tjekker vi om den er over 5...
    if((int)$karakter >= 5)
    {
          //Her retunere vi svaret til det sted hvor vi kalder funktionen.
          return "Tillykke du har bestået!"."<br />";
    }
    else
    {
          return "Desværre! Du dumpede!"."<br />";
    }
}
else
{
    return "Du har ikke fået en karakter endnu, ellers kan det være fordi den er indtastet forkert";
}

}
//Her kalder vi vores funktion med karakteren 03, den vil skrive "Desværre! Du dumpede!" i din browser.
echo findkarakter("03"); // Her indsættes den karakter brugeren har fået.

?>

Grunden til at jeg bruger funktionen empty() i stedet for isset er at den i dette tilfælde ville være det bedste valg, da den tjekker for mere end isset og fordi isset ikke bruges i PHP5 generelt.
Avatar billede alex15 Nybegynder
26. oktober 2007 - 14:01 #9
Ja okay, næsten forstået..! Men okay, har lige siddet og rodet lidt med det, og jo mere jeg roder med det jo mere giver det mening.. bare meget rart lige og have en andens kode og kigge på..!

Men tak for hjælpen.. lav lige et svar :o)
Avatar billede uggi16 Nybegynder
26. oktober 2007 - 14:25 #10
Et svar ? :)
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