PHP dispone de numerosas funciones y estructuras estándar. También
hay funciones que requieren extensiones específicas de PHP, sin
las cuales se obtendrá el error fatal
undefined function
. Por ejemplo, para utilizar las
funciones de imágenes,
tales como imagecreatetruecolor(), se necesitará el
soporte de GD en PHP. O bien, para utilizar
mysqli_connect(), se necesitará la extensión
MySQLi. Hay funciones básicas que
están incluidas en todas las versiones de PHP, tales como las funciones de
cadenas de caracteres y las funciones
de variables. Utilice
phpinfo() o
get_loaded_extensions() para saber cuáles son las
extensiones que están compiladas con su PHP. Tenga en cuenta también que
muchas extensiones están activadas por defecto, y que el manual PHP está
compartimentado por extensión. Vea los capítulos de
configuración,
instalación así como los
detalles particulares a cada extensión, para saber cómo ponerlas en marcha.
Leer y comprender el prototipo de una función se describe en el anexo Cómo leer la definición de una función (prototipo). Es importante comprender qué devuelve una función, o si una función trabaja directamente sobre el valor de los parámetros proporcionados. Por ejemplo, str_replace() devolverá una cadena modificada, mientras que usort() trabaja directamente sobre la variable pasada en parámetro. Cada página del manual tiene información específica sobre cada función, como el número de parámetros, las evoluciones de especificaciones, los valores devueltos en caso de éxito o fracaso, y la disponibilidad en función de las versiones. Conocer bien estas diferencias, a veces sutiles, es crucial para programar bien en PHP.
Nota: Si los parámetros dados a una función no son correctos, como el hecho de pasar un array cuando se espera una string, el valor devuelto de la función es indefinido. En este caso, la función devolverá la mayoría de las veces un valor
null
pero esto es solo una convención y no puede ser considerado como una certeza. A partir de PHP 8.0.0, una excepción TypeError es normalmente lanzada en este caso.
Nota:
En modo coercitivo, los tipos escalares de las funciones internas son nullables por defecto. A partir de PHP 8.1.0, pasar
null
a un parámetro de función interna que no está declarado nullable es desaconsejado y emite una notificación de deprecación en modo coercitivo para alinearse con el comportamiento de las funciones definidas por el usuario, donde los tipos escalares deben ser marcados como nullables explícitamente.Por ejemplo, la función strlen() espera que el parámetro
$string
sea de tipo string y nonull
. Por razones históricas, PHP permite el paso denull
para este parámetro en modo coercitivo. El parámetro es entonces implícitamente convertido en string, resultando en un valor""
. Tenga en cuenta que se emite una TypeError en modo estricto.<?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)
?>