Introduktion

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Varje enskilt uttryck i PHP har en av följande inbyggda typer beroende på dess värde:

PHP är ett dynamiskt typat språk, vilket innebär att det i grund och botten inte är nödvändigt att specificera en variabels typ, eftersom detta bestäms vid körning. Det är dock möjligt att statiskt typa vissa aspekter av språket genom att använda typannoteringar.

Typer begränsar vilken typ av operationer som kan utföras på dem. Om ett uttryck eller en variabel används i en operation som dess typ inte stöder, kommer PHP att försöka typomvandla värdet till en typ som stöder operationen. Denna process beror på sammanhanget i vilket värdet används. För mer information, se avsnittet om Typomvandling.

Tips
Tabellerna för typjämförelse kan också vara användbara, eftersom det finns olika exempel på jämförelser mellan värden av olika typer.
Notera
Det är möjligt att tvinga ett uttryck att utvärderas till en viss typ genom att använda en typkonvertering. En variabel kan också typkonverteras på plats genom att använda funktionen settype() på den.

För att kontrollera värdet och typen av ett uttryck, använd funktionen var_dump(). För att hämta typen av ett uttryck, använd funktionen get_debug_type(). För att kontrollera om ett uttryck är av en viss typ använd funktionerna is_type istället.

<?php
$a_bool = true;   // en bool
$a_str  = "foo";  // en sträng
$a_str2 = 'foo';  // en sträng
$an_int = 12;     // en int

echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";

// Om detta är ett heltal, öka det med fyra
if (is_int($an_int)) {
    $an_int += 4;
}
var_dump($an_int);

// Om $a_bool är en sträng, skriv ut den
if (is_string($a_bool)) {
    echo "Sträng: $a_bool";
}
?>

Utskrift av ovanstående exempel i PHP 8:

bool
string
int(16)
Notera
Före PHP 8.0.0, där funktionen get_debug_type() inte är tillgänglig, kan funktionen gettype() användas istället. Den använder dock inte de kanoniska typnamnen.


Språkreferens