while varias tag recorrer for else ejercicios condiciones array php if-statement

varias - recorrer array php while



Establecer variable en la expresión de la sentencia if (2)

Me encontré con un código interesante hoy. Intenté averiguar si esta es una característica de PHP o si me falta algo, pero no pude encontrar nada en Google. Probablemente porque no sé cómo se llama.

Código

if($logo = /Repositories/Logo::getLogoData($id)){ $logo_href = $logo->link; }

La variable $logo no se está configurando en ningún otro lugar. Parece que la expresión en esta declaración if está verificando si el método de esa clase está devolviendo algo y al mismo tiempo establece la variable $logo que se usará en la declaración.

¿Es esto cierto? Si es así, ¿cómo se llama esto??!


Puedes hacer una asignación así en un condicional. Lo que sucedió lógicamente es que el valor se asigna a $logo y luego $logo se evalúa para ver si es verdad. Si es veraz, se ejecuta el código en el condicional.

Con frecuencia verá este tipo de asignación / evaluación en el caso de realizar un bucle a través de conjuntos de resultados de la base de datos, pero en general sugeriría que se evite fuera de un caso de uso tan común para mayor claridad al leer el código g.


Sí, esta es una característica. Es como:

$a=$b=5;

Pero en este caso, imagine el resultado bool de si como var $ a.

Sin embargo, los IDE se utilizan para quejarse de soluciones como esta debido a == vs. = como una posible fuente de error muy común.