variable globales funciones declarar concatenar array php variable-types

globales - variable string php



Declarando tipos de variables en PHP (5)

¿Esto realmente impone límites sobre qué tipo de variable puedo pasar al método bla?

Esto se llama tipo de insinuación . De acuerdo con la documentación de PHP a la que acabo de vincular, sí, impone límites en el tipo de argumento: " No satisfacer la sugerencia de tipo da como resultado un error fatal capturable " .

¿Cómo puedo declarar el tipo de una variable en PHP si no estoy en una función?

Leer tipo malabares . No se puede definir explícitamente el tipo de una variable en PHP, su tipo se decide por el contexto en el que se utiliza.

Intenté que mi Netbeans se autocompletara con PHP , y supe que este código es válido en PHP:

function blah(Bur $bur) {}

Un par de preguntas:

  1. ¿Esto realmente impone límites sobre qué tipo de variable puedo pasar al método bla?
  2. Si esto es solo para ayudar al IDE, me parece bien. ¿Cómo puedo declarar el tipo de una variable en PHP si no estoy en una función?

# 2: (...) ¿Cómo puedo declarar el tipo de una variable en PHP si no estoy en una función?

Recientemente escuché sobre " settype () " y " gettype () " en PHP4 y 5
Puede forzar el tipo de variable en cualquier momento fácilmente

Desde PHP.net:

bool settype (mixed y $ var, string $ type)

Parámetros

var: la variable que se está convirtiendo. tipo: los valores posibles de tipo son:

  • "boolean" (o, desde PHP 4.2.0, "bool")
  • "entero" (o, desde PHP 4.2.0, "int")
  • "float" (solo es posible desde PHP 4.2.0, para versiones anteriores usa la variante en desuso "double")
  • "cuerda"
  • "formación"
  • "objeto"
  • "nulo" (desde PHP 4.2.0)

[: D Primera visita, primer comentario ...]


Se llama insinuación de tipo, agregada con PHP 5. No es exactamente lo que puede esperar si proviene de un lenguaje como Java. Causa un error si no pasa el tipo esperado. Sin embargo, no puede escribir primitivas de sugerencia (sin int $ bur).


  1. Al especificar un tipo de datos para un parámetro de función, PHP arrojará un error fatal que se puede atrapar si pasa un valor que no es de ese tipo. Sin embargo, tenga en cuenta que solo puede especificar tipos para las clases, y no primitivas como cadenas o enteros.
  2. La mayoría de los IDE pueden inferir un tipo de datos de un comentario de estilo PHPDoc si se proporciona uno. p.ej

/** * @var string */ public $variable = "Blah";


Esta sugerencia de tipo solo funciona para validar argumentos de funciones; no puede declarar que una variable PHP siempre debe ser de un tipo determinado. Esto significa que en su ejemplo, $ bur debe ser del tipo Bur cuando se llama a "blah", pero $ bur puede reasignarse a un valor que no sea Bur dentro de la función.

La sugerencia de tipo solo funciona para nombres de clase o interfaz; no puede declarar que un argumento debe ser un número entero, por ejemplo.

Un aspecto molesto de la sugerencia de tipo de PHP, que es diferente de la de Java, es que los valores NULL no están permitidos. Entonces, si desea la opción de pasar NULL en lugar de un objeto, debe eliminar la sugerencia de tipo y hacer algo como esto en la parte superior de la función:

assert(''$bur === NULL || $bur instanceof Bur'');

EDITAR: este último párrafo no se aplica desde PHP 5.1; ahora puede usar NULL como valor predeterminado, incluso con una sugerencia de tipo.

EDITAR: También puede instalar la extensión SPL Type Handling , que le ofrece tipos de contenedor para cadenas, ints, floats, booleans y enums.

EDITAR: También puede usar "matriz" desde PHP 5.1 y "invocable" desde PHP 5.4.

EDITAR: También puede usar "cadena", "int", "flotante" y "bool" desde PHP 7.0.