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
strings y las funciones de variables. Utilice
phpinfo() o
get_loaded_extensions() para saber qué extensiones están
compiladas con su PHP. Tenga en cuenta también que
numerosas extensiones están activadas por defecto, y que el manual de PHP está
compartimentado por extensión. Véase los capítulos de
configuración,
instalación así como los
detalles particulares de cada extensión, para saber cómo ponerlas en marcha.
Leer y comprender el prototipo de una función se describe en el apéndice 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 string modificada, mientras que usort() trabaja directamente sobre la variable pasada como 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 según 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 pasar un array cuando se espera un 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, normalmente se lanza una excepción TypeError 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 como nullable está deprecado y emite una advertencia 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 pasarnull
para este parámetro en modo coercitivo. El parámetro es entonces convertido implícitamente a string, resultando en un valor""
. Tenga en cuenta que una TypeError es emitida en modo estricto.<?php
var_dump(strlen(null));
// "Deprecated: Passing null to parameter #1 ($string) of type string is deprecated" a partir de PHP 8.1.0
// int(0)
var_dump(str_contains("foobar", null));
// "Deprecated: Passing null to parameter #2 ($needle) of type string is deprecated" a partir de PHP 8.1.0
// bool(true)
?>