Funciones internas

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 no null. Por razones históricas, PHP permite el paso de null 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)
?>

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top