Introduktion
Varje enskilt uttryck i PHP har en av följande inbyggda typer beroende på dess värde:
- null
- bool
- int
- float (flyttalsnummer)
- string
- array
- object
- callable
- resource
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.