PHP dispose de nombreuses fonctions et structures standards. Il y a aussi
des fonctions qui requièrent des extensions spécifiques de PHP, sans
lesquelles vous obtiendrez l'erreur fatale
undefined function
. Par exemple, pour utiliser les
fonctions d'images,
telles que imagecreatetruecolor(), vous aurez besoin du
support de GD dans PHP. Ou bien, pour utiliser
mysqli_connect(), vous aurez besoin de l'extension
MySQLi. Il y a des fonctions de base qui
sont incluses dans toutes les versions de PHP, telles que les fonctions de
chaînes de caractères et les fonctions
de variables. Utilisez
phpinfo() ou
get_loaded_extensions() pour savoir quelles sont les
extensions qui sont compilées avec votre PHP. Notez aussi que de
nombreuses extensions sont activées par défaut, et que le manuel PHP est
compartimenté par extension. Voyez les chapitres de
configuration,
installation ainsi que les
détails particuliers à chaque extension, pour savoir comment les mettre en place.
Lire et comprendre le prototype d'une fonction est décrit dans l'annexe Comment lire la définition d'une fonction (prototype). Il est important de comprendre ce qu'une fonction retourne, ou si une fonction travaille directement sur la valeur des paramètres fournis. Par exemple, str_replace() va retourner une chaîne modifiée, tandis que usort() travaille directement sur la variable passée en paramètre. Chaque page du manuel a des informations spécifiques sur chaque fonction, comme le nombre de paramètres, les évolutions de spécifications, les valeurs retournées en cas de succès ou d'échec, et la disponibilité en fonction des versions. Bien connaître ces différences, parfois subtiles, est crucial pour bien programmer en PHP.
Note: Si les paramètres donnés à une fonction ne sont pas corrects, comme le fait de passer un tableau alors qu'une chaîne de caractères est attendue, la valeur retournée de la fonction est indéfinie. Dans ce cas, la fonction retournera la plupart du temps une valeur
null
mais ce n'est juste qu'une convention et ne peut être considéré comme une certitude. À partir de PHP 8.0.0, une exception TypeError est normalement lancée dans ce cas.
Note:
En mode coercitif, les types scalaires des fonctions internes sont nullables par défaut. À partir PHP 8.1.0, passer
null
à un paramètre de fonction interne qui n'est pas déclaré nullable est déconseillé et émet une notice de dépréciation en mode coercitif pour s'aligner sur le comportement des fonctions définies par l'utilisateur, où les types scalaires doivent être marqués comme nullables explicitement.Par exemple, la fonction strlen() attend du paramètre
$string
soit de type chaîne de caractères et nonnull
. Pour des raisons historiques, PHP autorise le passage denull
pour ce paramètre en mode coercitif. Le paramètre est alors implicitement converti en string, résultant en une valeur""
. Noter qu'une TypeError est émise en mode strict.<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" as of PHP 8.1.0
// int(0)
var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" as of PHP 8.1.0
// bool(true)
?>