Ayuda sintaxis php

Publicado en 'Programación' por austriaco, 2 May 2016.





  1. austriaco

    austriaco Miembro frecuente

    Registro:
    18 Feb 2015
    Mensajes:
    73
    Likes:
    10




    Hola, alguien que domine php me ayude con esta sintaxis? es la primera vez que trabajo con php y no logro entender estos operadores logicos en un 'if':

    if(($plantilla= $departamento->getTemplate())
    && ($msg=$plantilla->getReplyMsgTemplate())
    ) {............................}


    que significan esas condiciones resaltadas en negro, el '=' y el '->'? en java y C# se que se verifica una condición , '==','!=', pero acá parece que asigna el valor a una variable al mismo tiempo que la usa como condición, alguna idea? Gracias.
     


  2. n00b

    n00b Miembro frecuente

    Registro:
    12 Dic 2015
    Mensajes:
    139
    Likes:
    50
    "->" es el equivalente al punto "." en Java y C#.
    La asignación dentro de una expresión condicional existe desde C. Una asignación devuelve el valor asignado y este valor es el que se evalúa, por ejemplo en el caso de $msg si la cadena está vacía entonces se evaluará a "false", en el caso de $plantilla si el objeto es nulo entonces se evaluará a "false", depende qué diga la doc. acerca de los booleanos.
     
    A austriaco le gustó este mensaje.
  3. austriaco

    austriaco Miembro frecuente

    Registro:
    18 Feb 2015
    Mensajes:
    73
    Likes:
    10
    entonces omitiendo la asignación de variable, su equivalente en c# o java vendria a ser por ejemplo:

    if(departamento.getTemplate())
    {............................................}

    ?
     
  4. n00b

    n00b Miembro frecuente

    Registro:
    12 Dic 2015
    Mensajes:
    139
    Likes:
    50
    Sí, o también:

    var plantilla = departamento.getTemplate();
    if(plantilla ) {............................}
     
    A austriaco le gustó este mensaje.
  5. austriaco

    austriaco Miembro frecuente

    Registro:
    18 Feb 2015
    Mensajes:
    73
    Likes:
    10
    listo amigazo, ya me quedo claro, gracias por tu ayuda.