strict_types etiquetas espaƱol ejemplos descargar completo php apache php-7 variable-types

etiquetas - php 7 manual



Habilitando ''strict_types'' globalmente en PHP 7 (2)

Actualmente estoy migrando mi sitio web de PHP5 a PHP7, y comencé a usar la función de escritura estricta que se agregó. Sin embargo, esto requiere que comience todos los archivos con la siguiente línea:

<?php declare(strict_types=1); // All other code here // ...

Así que me preguntaba: ¿hay alguna forma de habilitar strict_types globalmente usando algo como php.ini o el archivo de configuración de Apache para que no tenga que escribir esta línea todas las veces? Si es así, ¿cómo puedo habilitar esto?


Esencialmente no.

Porque si solo necesita bibliotecas que usen el modo estricto, causará una separación innecesaria de paquetes. También considere que la opción de tipos estrictos / débiles es solo un extra en PHP.


Esto no es deliberadamente posible, porque la implementación adoptada después de una discusión extremadamente larga de sugerencias de tipo escalar fue esta: https://wiki.php.net/rfc/scalar_type_hints_v5

Da explícitamente la opción de cómo se verifican los tipos escalares al llamante de cualquier función, no a su autor, de modo que:

  • Si escribe una biblioteca con sugerencias de tipo escalar, sus funciones tienen garantizados los tipos de parámetros solicitados, incluso si se los llama mediante un código que no está escrito en modo estricto (los tipos están obligados en su lugar)
  • Si escribe una biblioteca y quiere una escritura débil tradicional, aún puede hacer uso de las bibliotecas que usan sugerencias de tipo (porque no lo obligan a realizar una comprobación estricta de tipos)
  • por el contrario, si escribe una biblioteca y desea escribir de forma estricta para las funciones a las que llama , no es necesario que los usuarios de su biblioteca también habiliten la escritura estricta
  • las funciones integradas funcionan de la misma manera que las definidas por el usuario, y el código existente se ejecuta de la misma forma predeterminada
  • Si activa la escritura estricta, debe cambiar su código para manejarlo correctamente de todos modos

Por lo tanto, depende de usted decirle a PHP qué archivos se han escrito para utilizar el modo de tipo estricto y cuáles no; y la forma de hacerlo es usando la declare declaración.