Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/09/2002, 10:46
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años
Puntos: 0
Re: Variable que se limpia

Buenas, a ver vamos a aclarar un poco las cosas porque me parece que esta medio confuso y la idea no es solucionar el problema de otra manera sino que entender porque las cosas suceden de una forma en la que no esperamos.
En PHP al igual que en C y otros lenguajes, el operador de asignacion es diferente al de comparacion. En PHP la asignacion se realiza mediante el operador igual ("=") y la comparacion mediante el operador doble igual ("==").
Ahora, algo particular de este tipo de Sintaxis es que la operacion asignar (=) devuelve un valor implicitamente, es decir (a=10) asigna a la variable "a" el valor 10, pero ademas devuelve el valor que asignaste o sea 10.
Es por eso que es posible hacer cosas de este tipo:
$a = $b = 10;
// asigno a $b el valor 10, y asigno a $a el valor de la asignancion, o sea 10.

En tu caso, al hacer ($img1 = "") estas asignado "" a $img1 y el valor analizado por el if es "", que es false.

En otros lenguajes, Pascal por ej. estos operadores son := (asignacion) y = (comparacion), pero en este lenguaje no te devuelve este valor (creo). En cambio el ASP o VB, no hay diferencia entre asignar y comparar, por lo que es un poco confuso, y eso repercute tambien en el analisis lexico del compilador o interprete, que como siempre MS va contra la corriente. Esto lo digo porque lamentablemente tengo que lidiar todos los dias contra VB por cuestiones laborales. pero en los ratos libres disfruto usando PHP

Bueno, espero haber sido claro en mi explicacion.

Saludos

<img name="Firma" src="http://www.jpw.com.ar/FirmaNok.gif" border="0" usemap="#Mapa"><map name="Mapa"><area shape="rect" coords="0,43,174,60" href="http://www.jpw.com.ar/noktemplate"></map>