Interna (inbyggda) funktioner

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

Interna (inbyggda) funktioner

PHP levereras som standard med många funktioner och konstruktioner. Det finns också funktioner som kräver specifika PHP-tillägg som är kompilerade in, annars kommer fatala "undefined function" fel att visas. Till exempel, för att använda bildfunktioner som imagecreatetruecolor(), måste PHP vara kompilerad med GD-stöd. Eller, för att använda mysqli_connect(), måste PHP vara kompilerad med MySQLi-stöd. Det finns många kärnfunktioner som är inkluderade i varje version av PHP, såsom sträng- och variabelfunktioner. Ett anrop till phpinfo() eller get_loaded_extensions() kommer att visa vilka tillägg som är laddade i PHP. Observera också att många tillägg är aktiverade som standard och att PHP-manualen är uppdelad efter tillägg. Se kapitlen om konfiguration, installation och individuella tillägg för information om hur man konfigurerar PHP.

Att läsa och förstå en funktions prototyp förklaras inom manualens avsnitt om hur man läser en funktionsdefinition. Det är viktigt att förstå vad en funktion returnerar eller om en funktion arbetar direkt på ett passerat värde. Till exempel, str_replace() kommer att returnera den modifierade strängen medan usort() arbetar på den faktiska passerade variabeln. Varje manualsida har också specifik information för varje funktion som information om funktionsparametrar, beteendeförändringar, returvärden för både framgång och misslyckande samt tillgänglighetsinformation. Att känna till dessa viktiga (men ofta subtila) skillnader är avgörande för att skriva korrekt PHP-kod.

Notera: Om parametrarna som ges till en funktion inte är vad den förväntar sig, som att skicka en array där en sträng förväntas, är returvärdet av funktionen odefinierat. I detta fall kommer den troligen att returnera null men detta är bara en konvention och kan inte förlitas på. Från och med PHP 8.0.0 är det meningen att ett TypeError-undantag ska kastas i detta fall.

Notera:

Skalära typer för inbyggda funktioner är nullable som standard i tvångsläge (coercive mode). Från och med PHP 8.1.0 är det avrådd att skicka null till en intern funktionsparameter som inte är deklarerad som nullable, och detta ger en avskrivningsvarning i tvångsläge för att anpassa sig till beteendet hos användardefinierade funktioner, där skalära typer måste märkas som nullable uttryckligen.

Till exempel förväntar funktionen strlen() att parametern $string är en icke-nullbar sträng. Av historiska skäl tillåter PHP att null skickas för denna parameter i tvångsläge, och parametern kastas implicit till en sträng, vilket resulterar i ett värde av "". I kontrast, kastas ett TypeError-undantag i strikt läge.

<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" från och med PHP 8.1.0
// int(0)

var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" från och med PHP 8.1.0
// bool(true)
?>

Se även

Sidslut

Orginalhemsidan på Engelska : https://www.php.net/manual/en/functions.internal.php
PHP
Språkreferens
Språkreferens#Funktioner