¿Que es esto?
Esta es una colección de preguntas que surgen de vez en cuando sobre la sintaxis en PHP. Esta es también una Wiki de la comunidad, por lo que todos están invitados a participar en el mantenimiento de esta lista.
¿Por qué es esto?
Solía ser difícil encontrar preguntas sobre operadores y otros tokens de sintaxis.
La idea principal es tener enlaces a preguntas existentes sobre Stack Overflow, por lo que es más fácil para nosotros hacer referencia a ellas, no copiar el contenido del Manual de PHP.
Nota: desde enero de 2013, Stack Overflow admite caracteres especiales . Simplemente rodee los términos de búsqueda entre comillas, por ejemplo[php] "==" vs "==="
¿Qué debo hacer aquí?
Si alguien te ha señalado aquí porque has hecho esa pregunta, busca la sintaxis particular a continuación. Las páginas vinculadas al manual de PHP junto con las preguntas vinculadas probablemente responderán su pregunta en ese momento. Si es así, se le anima a votar la respuesta. Esta lista no pretende ser un sustituto de la ayuda que otros proporcionaron.
La lista
Si su token en particular no se enumera a continuación, puede encontrarlo en la Lista de tokens de analizador .
&
Operadores bit a bit o referencias
- ¿Qué significa iniciar una función PHP con un ampersand?
- Comprensión del operador PHP & (ampersand, bitwise and)
- Operador PHP "&"
- Diferencia entre & y && en PHP
- ¿Qué significa "&" aquí en PHP?
- ¿Qué significa "&" en este caso?
- ¿Qué significa el signo "&" en PHP?
- ¿Qué significa esta firma (&) en PHP?
- ¿Cómo funciona el operador "&" en una función PHP?
- ¿Qué significa & in & 2 en PHP?
- ¿Cuándo debo usar un operador bit a bit?
- ¿Alguna vez hay necesidad de usar ampersand delante de un objeto? PS
=&
Referencias
- Operador de asignación de referencia en PHP, = &
- ¿Qué significan los operadores "= &" y "& =" en PHP?
- ¿Qué hacen los operadores '& =' y '= &'?
- ¿Qué significa = & en PHP?
- 'AND' vs '&&' como operador
- Diferencia entre & y && en PHP
- ¿Hay alguna diferencia entre los operadores "y" y "&&" en PHP?
- PHP - y / o palabras clave
- ¿Qué significa el signo de porcentaje en PHP?
- ¿Qué es el operador PHP% y cómo lo uso en ejemplos del mundo real?
@
Operadores de control de errores
- ¿Para qué sirve el símbolo @ en PHP?
- Símbolo 'At' antes del nombre de la variable en PHP: @ $ _ POST
- Funciones PHP y @funciones
- ¿Debo usar @ en mi código PHP?
- ¿Qué significa @ en PHP?
- ¿Qué son los operadores PHP "?" y ":" llamaron y ¿qué hacen?
- ?: operador (el 'operador de Elvis') en PHP
- ¿Dónde puedo leer sobre condicionales hechos con "?" y ":" (dos puntos)?
- Usando PHP 5.3?: Operador
??
Operador de fusión nula (desde PHP 7)
?string
?int
?array
?bool
?float
Declaración de tipo de retorno anulable (desde PHP 7.1)
:
Sintaxis alternativa para estructuras de control , operador ternario
::
Operador de resolución de alcance
- ¿Qué significan dos puntos en PHP?
- ¿Cuál es el significado del nombre de token PHP T_PAAMAYIM_NEKUDOTAYIM?
- ¿Cuál es la diferencia entre :: (dos puntos) y -> (flecha) en PHP?
- ¿Qué son exactamente los enlaces estáticos tardíos en PHP?
- static :: staticFunctionName ()
- Inesperado T_PAAMAYIM_NEKUDOTAYIM, esperando T_NS_Separator
- ¿Cómo se llama el operador PHP "->" y cómo se dice al leer el código en voz alta?
- ¿Dónde usamos el operador de objeto "->" en PHP?
- ¿Cuál es la diferencia entre :: (dos puntos) y -> (flecha) en PHP?
- ¿Qué significa la sintaxis PHP $ var1 -> $ var2?
- ¿Qué significa "->" significa / se refiere en PHP?
=>
Matrices
- ¿Qué significa "=>" en PHP?
- Uso de => en PHP
- ¿Qué significa $ k => $ v en foreach ($ ex como $ k => $ v)?
<<<
Heredoc o Nowdoc
- ¿Qué significa <<< END en PHP?
- Expresión PHP <<< EOB
- En PHP, ¿qué representa "<<<"?
- Usando <<< CON en PHP
- ¿Qué es este tipo de sintaxis en PHP?
- ¿En qué se diferencian los operadores de comparación de igualdad PHP (== doble igual) e identidad (=== triple igual)?
- PHP! = Y == operadores
- Los 3 iguales iguales
- Malabarismo de tipos y comparaciones (estrictas) mayores / menores que en PHP
- ¿Qué significa "==="?
- ¿En qué se diferencian los operadores de comparación de igualdad PHP (== doble igual) e identidad (=== triple igual)?
- Los 3 iguales iguales
- Malabarismo de tipos y comparaciones (estrictas) mayores / menores que en PHP
- PHP! = Y == operadores
- ¿Hay alguna diferencia entre! == y! = En PHP?
- comparando,! == versus! =
- ¿Cuál es la diferencia entre <> y! =
- Operador PHP <>
- Operador <> de PHP
- ¿Cuál es la diferencia entre <> y! =
- Malabarismo de tipos y comparaciones (estrictas) mayores / menores que en PHP
<=>
Operadores de comparación (desde PHP 7.0)
- ¿Cuál es la diferencia entre el | y || operadores?
- ¿Qué significa usar una sola tubería? En un argumento de función Do?
- ¿Cuál es la diferencia entre el | y || operadores?
- PHP - y / o palabras clave
- ¿Qué hace exactamente || ¿media?
- El comportamiento del operador o en PHP
+
Operadores Aritméticos , Operadores de Arreglos
+=
y -=
operadores de asignación
++
y --
operadores que aumentan / disminuyen
- ¿Diferencia entre punto y coma cuando se concatena con eco versus retorno?
- Que hace un . (punto) hacer en PHP?
- ¿Qué significa $$ (dólar dólar o dólar doble) en PHP?
- ¿Qué es "$$" en PHP?
- $ función () y $$ variable
[]
Matrices (sintaxis corta desde PHP 5.4)
- Matrices PHP ... ¿Cuál es / son los significados de un paréntesis vacío?
- Cuál es el significado de []
- Php array_push () vs myArray []
- ¿Qué significa [] cuando se lee desde una matriz PHP?
- Taquigrafía para matrices:
$var = []
matriz vacía literal
<?
Etiquetas de apertura y cierre
...
Desembalaje de argumentos (desde PHP 5.6)
**
Exponenciación (desde PHP 5.6)
#
Comentario de estilo de concha de una línea
?->
Llamadas de Operador NullSafe
/**
?$
variable, sino solo sobre$$
Variable Variables. Creo que debería enmendarse en alguna parte.Respuestas:
Operadores en aumento / decremento
++
operador de incremento--
operador de decrementoEstos pueden ir antes o después de la variable.
Si se coloca antes de la variable, la operación de incremento / decremento se realiza primero en la variable y luego se devuelve el resultado. Si se coloca después de la variable, la variable se devuelve primero , luego se realiza la operación de incremento / decremento.
Por ejemplo:
Ejemplo en vivo
En el caso anterior
++$i
se usa, ya que es más rápido.$i++
tendría los mismos resultados.El pre-incremento es un poco más rápido porque realmente incrementa la variable y luego 'devuelve' el resultado. El incremento posterior crea una variable especial, copia allí el valor de la primera variable y solo después de usar la primera variable, reemplaza su valor con el segundo.
Sin embargo, debe usar
$apples--
, ya que primero desea mostrar el número actual de manzanas y luego desea restarle una.También puede incrementar letras en PHP:
Una vez que
z
se alcanzaaa
es el siguiente, y así sucesivamente.Publicaciones de desbordamiento de pila:
fuente
Operador bit a bit
Que es un poco Un bit es una representación de 1 o 0. Básicamente OFF (0) y ON (1)
¿Qué es un byte? Un byte está formado por 8 bits y el valor más alto de un byte es 255, lo que significaría que cada bit está configurado. Veremos por qué el valor máximo de un byte es 255.
Esta representación de 1 byte
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 byte)
Algunos ejemplos para una mejor comprensión.
El operador "Y":
&
Esto generaría el número 8. ¿Por qué? Bueno, veamos usando nuestro ejemplo de tabla.
Así que puedes ver en la tabla que el único bit que comparten juntos es el 8 bit.
Segundo ejemplo
Los dos bits compartidos son 32 y 4, que al sumarse devuelven 36.
El operador "O":
|
Esto generaría el número 11. ¿Por qué?
Notará que tenemos un conjunto de 3 bits, en las columnas 8, 2 y 1. Sume esos: 8 + 2 + 1 = 11.
fuente
and &
es0 0 0 0 1 0 0 0
yor |
es0 0 0 0 1 0 1 1
?<=>
Operador de nave espacialAgregado en PHP 7
El operador de la nave espacial
<=>
es el último operador de comparación añadido en PHP 7. Es un no asociativo operador binario con la misma precedencia que los operadores de igualdad (==
,!=
,===
,!==
). Este operador permite una comparación tripartita más simple entre los operandos izquierdo y derecho.El operador da como resultado una expresión entera de:
0
cuando ambos operandos son iguales0
cuando el operando de la izquierda es menor que el operando de la derecha0
cuando el operando de la izquierda es mayor que el operando de la derechap.ej
Una buena aplicación práctica de usar este operador sería en devoluciones de llamada de tipo de comparación que se espera que devuelvan un entero cero, negativo o positivo basado en una comparación tripartita entre dos valores. La función de comparación que se pasa
usort
es uno de esos ejemplos.Antes de PHP 7 escribirías ...
Desde PHP 7 puedes escribir ...
fuente
$a <=> $b
es diferente$a - $b
$a - $b
funciona para números, pero no para cadenas, objetos o matrices.$a - $b
ni siquiera funciona para números; funciona solo para enteros . No funciona para números no enteros, ya que convierte losusort
valores de retorno de la función de comparación enint
, lo que significa que 0.5 se convierte en 0, lo que significa que dos números con una diferencia de menos de 1, como 4 y 4.6, pueden (dependiendo sobre el cual se pasa como primer argumento a su función de comparación) incorrectamente comparar como igual._
Alias para gettext ()El carácter de subrayado '_' como en
_()
es un alias de lagettext()
función.fuente
fuente
Constantes mágicas : aunque estos no son solo símbolos sino parte importante de esta familia de fichas. Hay ocho constantes mágicas que cambian dependiendo de dónde se usan.
__LINE__
: El número de línea actual del archivo.__FILE__
: La ruta completa y el nombre de archivo del archivo. Si se usa dentro de un include, se devuelve el nombre del archivo incluido. Desde PHP 4.0.2,__FILE__
siempre contiene una ruta absoluta con enlaces simbólicos resueltos, mientras que en versiones anteriores contenía una ruta relativa en algunas circunstancias.__DIR__
: El directorio del archivo. Si se usa dentro de un include, se devuelve el directorio del archivo incluido. Esto es equivalente adirname(__FILE__)
. Este nombre de directorio no tiene una barra inclinada final a menos que sea el directorio raíz. (Agregado en PHP 5.3.0.)__FUNCTION__
: El nombre de la función. (Agregado en PHP 4.3.0) A partir de PHP 5, esta constante devuelve el nombre de la función tal como se declaró (distingue entre mayúsculas y minúsculas). En PHP 4 su valor siempre está en minúscula.__CLASS__
: El nombre de la clase. (Agregado en PHP 4.3.0) A partir de PHP 5, esta constante devuelve el nombre de la clase tal como se declaró (distingue entre mayúsculas y minúsculas). En PHP 4 su valor siempre está en minúscula. El nombre de la clase incluye el espacio de nombres en el que se declaró (por ejemploFoo\Bar
). Tenga en cuenta que a partir de PHP 5.4__CLASS__
también funciona en rasgos. Cuando se usa en un método de rasgo,__CLASS__
es el nombre de la clase en la que se usa el rasgo.__TRAIT__
: El nombre del rasgo. (Agregado en PHP 5.4.0) A partir de PHP 5.4, esta constante devuelve el rasgo tal como fue declarado (distingue entre mayúsculas y minúsculas). El nombre del rasgo incluye el espacio de nombres en el que se declaró (por ejemploFoo\Bar
).__METHOD__
: El nombre del método de clase. (Agregado en PHP 5.0.0) El nombre del método se devuelve como se declaró (distingue entre mayúsculas y minúsculas).__NAMESPACE__
: El nombre del espacio de nombres actual (distingue entre mayúsculas y minúsculas). Esta constante se define en tiempo de compilación (Agregado en PHP 5.3.0).Fuente
fuente
Operadores de tipo
instanceof
se usa para determinar si una variable PHP es un objeto instanciado de una clase determinada.El ejemplo anterior generará:
Motivo: el ejemplo anterior
$a
es un objeto de, por lomclass
tanto, use solo unamclass
información que no sea una instancia consclass
Ejemplo con herencia
El ejemplo anterior generará:
Ejemplo con clon
El ejemplo anterior generará:
fuente
Una descripción general de los operadores en PHP :
Operadores logicos:
Operadores de comparación:
Operadores aritméticos:
Operadores de aumento / disminución:
Operadores bit a bit:
Operadores de cadenas:
Operadores de matrices:
Operadores de Asignación:
Nota
and
operador yor
operador tienen menor prioridad que el operador de asignación=
.Esto significa que
$a = true and false;
es equivalente a($a = true) and false
.En la mayoría de los casos, es probable que desee utilizar
&&
y||
, que se comportan de una manera conocida de lenguajes como C, Java o JavaScript.fuente
$a ?? $c
, dice que es lo mismo que$a ? $a : $c
, pero el operador ternario verifica si el valor es verdadero, por otro lado, la fusión nula verifica los valores nulos, por lo tanto, si $ a es 0, obtendrá 0 (porque 0 es no nulo), por ejemplo si tiene:$a=0; $c=5;
luego$a?$a:$c
devuelve 5 y$a??$c
devuelve 0.Operador de nave espacial
<=>
(agregado en PHP 7)Ejemplos para el
<=>
operador de nave espacial (PHP 7, Fuente: Manual PHP):Números enteros, flotantes, cadenas, matrices y objetos para la comparación tripartita de variables.
fuente
{}
LlavesY algunas palabras sobre la última publicación.
fuente
Operador de fusión nula (??)
Este operador se ha agregado en PHP 7.0 para el caso común de necesitar usar un operador ternario junto con
isset()
. Devuelve su primer operando si existe y no existeNULL
; de lo contrario, devuelve su segundo operando.fuente
Cadenas PHP: Las cadenas PHP se pueden especificar de cuatro maneras, no solo de dos maneras:
1) Cadenas de comillas simples:
2) Cadenas de comillas dobles:
3) Heredoc:
4) Nowdoc (desde PHP 5.3.0):
fuente
PREGUNTA:
Que
=>
significaRESPONDER:
=>
Es el símbolo que los humanos decidimos usar para separar"Key" => "Value"
pares en matrices asociativas.ELABORANDO:
Para entender esto, tenemos que saber qué son las matrices asociativas. Lo primero que surge cuando un programador convencional piensa en una matriz ( en PHP ) sería algo similar a:
Donde como, si quisiéramos llamar a la matriz en alguna parte posterior del código, podríamos hacer:
Hasta aquí todo bien. Sin embargo, como humanos, podríamos tener dificultades para recordar que el índice
[0]
de la matriz es el valor del año 2016, el índice[1]
de la matriz es un saludo y el índice[2]
de la matriz es un valor entero simple . La alternativa que tendríamos es usar lo que se llama una matriz asociativa . Una matriz asociativa tiene algunas diferencias con respecto a una matriz secuencial ( que es lo que eran los casos anteriores, ya que incrementan el índice utilizado en una secuencia predeterminada, incrementando en 1 para cada valor siguiente ).Diferencias ( entre una matriz secuencial y asociativa ):
Durante la declaración de una matriz asociativa, no solo incluye
value
lo que desea poner en la matriz, sino que también coloca el valor de índice (llamadokey
) que desea usar al llamar a la matriz en partes posteriores de la matriz. código. La siguiente sintaxis se utiliza durante la misma de la declaración:"key" => "value"
.Cuando se utiliza la matriz asociativa, el
key
valor se colocará dentro del índice de la matriz para recuperar el deseadovalue
.Por ejemplo:
Y ahora, para recibir el mismo resultado que antes, el
key
valor se usaría en el índice de matrices:PUNTO FINAL:
Entonces, a partir del ejemplo anterior, es bastante fácil ver que el
=>
símbolo se usa para expresar la relación de una matriz asociativa entre cada uno de los pareskey
yvalue
en una matriz DURANTE el inicio de los valores dentro de la matriz.fuente
Pregunta :
¿Qué significa "&" aquí en PHP?
Operador PHP "&"
Hace la vida más fácil una vez que nos acostumbramos ... (verifique el siguiente ejemplo cuidadosamente)
& generalmente verifica los bits que se establecen tanto en $ a como en $ b.
Así que detrás de todo lo anterior está el juego de operador bit a bit y bits.
Un caso útil de estas son configuraciones fáciles como las que se muestran a continuación, por lo que un solo campo entero puede almacenar miles de combos para usted.
La mayoría de las personas ya han leído los documentos, pero no confiaron en el caso de uso del mundo real de estos operadores bit a bit.
Ejemplo que te encantará
fuente
==
se usa para verificar la igualdad sin considerar el tipo de datos variable===
se utiliza para verificar la igualdad tanto para el valor variable como para el tipo de datosEjemplo
$a = 5
if ($a == 5)
- evaluará a verdaderoif ($a == '5')
- se evaluará como verdadero, porque al comparar este valor, PHP convierte internamente ese valor de cadena en entero y luego compara ambos valoresif ($a === 5)
- evaluará a verdaderoif ($a === '5')
- se evaluará como falso, porque el valor es 5, pero este valor 5 no es un entero.fuente
Operador de fusión nula "??" (Agregado en PHP 7)
No es el nombre más pegadizo para un operador, pero PHP 7 trae la combinación nula bastante práctica, así que pensé en compartir un ejemplo.
En PHP 5, ya tenemos un operador ternario, que prueba un valor, y luego devuelve el segundo elemento si eso devuelve verdadero y el tercero si no lo hace:
También hay una abreviatura para eso que le permite omitir el segundo elemento si es el mismo que el primero: echo $ count?: 10; // también produce 10
En PHP 7, además, tenemos el ?? operador que, en lugar de indicar una confusión extrema, que es la forma en que generalmente usaría dos signos de interrogación juntos, nos permite encadenar una cadena de valores. Leyendo de izquierda a derecha, el primer valor que existe y no es nulo es el valor que se devolverá.
Esta construcción es útil para dar prioridad a uno o más valores provenientes quizás de la entrada del usuario o de la configuración existente, y retroceder de manera segura en un valor predeterminado dado si falta esa configuración. Es una especie de característica pequeña, pero sé que la usaré tan pronto como mis aplicaciones se actualicen a PHP 7.
fuente
Declaración de tipo de retorno anulable
PHP 7 agrega soporte para declaraciones de tipo de retorno. De manera similar a las declaraciones de tipo de argumento, las declaraciones de tipo de retorno especifican el tipo de valor que se devolverá de una función. Los mismos tipos están disponibles para las declaraciones de tipo de retorno que están disponibles para las declaraciones de tipo de argumento.
La escritura estricta también tiene un efecto en las declaraciones de tipo de retorno. En el modo débil predeterminado, los valores devueltos se convertirán al tipo correcto si aún no son de ese tipo. En modo fuerte, el valor devuelto debe ser del tipo correcto, de lo contrario, se lanzará un TypeError.
A partir de PHP 7.1.0, los valores de retorno se pueden marcar como anulables al prefijar el nombre del tipo con un signo de interrogación (?) Esto significa que la función devuelve el tipo especificado o NULL.
Fuente
fuente
Tres DOTS como operador de Splat (...) (desde PHP 5.6)
PHP tiene un operador "..." (Tres puntos) que se denomina Operador Splat. Se utiliza para pasar un número arbitrario de parámetros en una función y este tipo de función se denomina Funciones Variadas. Tomemos ejemplos de uso de "..." (Tres puntos).
Cada argumento de la función CalculateNumbers () pasa a través de $ params como una matriz cuando se usa "...".
Hay muchas formas diferentes de utilizar el operador "...". A continuación algunos ejemplos:
fuente
? -> Operador NullSafe
Por el momento, es solo una propuesta, puedes encontrarla aquí . Es el
NullSafe Operator
, vuelvenull
en caso de que intentes invocar funciones u obtener valores denull
... Ejemplofuente
Operador NullSafe "? ->" (posiblemente) desde php8
Por el momento, es solo una propuesta, puede encontrarla ingrese la descripción del enlace aquí .
?->
es elNullSafe Operator
, vuelvenull
en caso de que intentes invocar funciones u obtener valores denull
...Ejemplos:
fuente