w3schools tutorial que descargar php php-7

tutorial - PHP 7 y tipos de "recursos" estrictos



php 7 wikipedia (2)

PHP no tiene una sugerencia de tipo para los recursos porque

No se agrega ninguna sugerencia de tipo para los recursos, ya que esto evitaría pasar de los recursos a los objetos para las extensiones existentes, lo que algunos ya han hecho (por ejemplo, GMP).

Sin embargo, puede usar is_resource() dentro del cuerpo de la función / método para verificar el argumento pasado y manejarlo según sea necesario. Una versión reutilizable sería una afirmación como esta:

function assert_resource($resource) { if (false === is_resource($resource)) { throw new InvalidArgumentException( sprintf( ''Argument must be a valid resource type. %s given.'', gettype($resource) ) ); } }

que luego podrías usar dentro de tu código así:

function test($ch) { assert_resource($ch); // do something with resource }

¿Admite PHP 7 la escritura estricta de recursos? ¿Si es así, cómo?

Por ejemplo:

declare (strict_types=1); $ch = curl_init (); test ($ch); function test (resource $ch) { }

Lo anterior dará el error:

Error grave: error de tipo no detectado: el argumento 1 pasado a test () debe ser una instancia de recurso, recurso dado

Un var_dump en $ch revela que es un recurso (4, curl) , y el manual dice que curl_init () devuelve un recurso.

¿Es posible escribir estrictamente la función test() para admitir la $ch variable ?


resource no es un tipo válido, por lo que se asume que es un nombre de clase según las sugerencias de tipo PHP / 5 anteriores. Pero curl_init() no devuelve una instancia de objeto.

Por lo que sé, no hay manera de especificar un recurso. Probablemente no sería tan útil ya que no todos los recursos son idénticos: un recurso generado por fopen() sería inútil para oci_parse() .