Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    8

    Stranissimo problema: variabili che sembrano cambiare da sole

    Ciao a tutti! Ho una pagina con un form, che tramite metodo POST chiama se stessa per elaborare i dati raccolti.

    Nel codice ho il pezzo seguente:

    codice:
    ...
    	$pc = $_POST['pc'];
    	echo "prima: ".$pc."
    ";
    	if ($pc =! "") 
    	{	echo "dopo: ".$pc;
    ...
    Quello che ottengo è:

    prima: 4 5 6 [corrisponde a quanto inserito]
    dopo: 1

    com'è possibile? è come se in un qualche modo salvasse nella variabile il risultato dell'if.
    Infatti, se uso un'altra variaible nell'if:

    codice:
    ...
    	$pc = $_POST['pc'];
    	echo "prima: ".$pc."
    ";
    	if ($asd =! "") 
    	{	echo "dopo: ".$pc;
    ...
    ottengo
    prima: 4 5 6
    dopo: 4 5 6

    Aiuto!! Non so proprio dove sbattere la testa :|

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    8
    Ho capito il problema: se uso =! fa quel giochetto, mentre ciò non accade con !=. Meraviglie del php.

  3. #3
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Nulla di strano, scrivendo $pc =! "" i caratteri uguale e punto esclamativo sono valutati singolarmente.
    Quindi alla variabile $pc viene assegnata ( = ) la negazione ( ! ) di "" :D


    != invece corrisponde alla negazione dell'operatore di uguaglianza ( il doppio uguale, per intenderci)

    E' tutta una questione di associatività degli operatori, approfondibile a questo indirizzo: http://www.php.net/manual/it/languag...ors.precedence

    operatore ! -> Associatività a destra -> viene applicato a quello che si trova subito dopo di lui

    Ciao ciao :)
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  4. #4
    Ennesima ulteriore dimostrazione di quanto spiego accuratamente in http://www.isidoroghezzi.net/assegna...r_sbaglio.html

    La soluzione definitiva per evitare per sempre questo genere di problemi è:
    Nei confronti mettere la costante a sinistra!

    ;-)

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    8
    Grazie mille per le spiegazioni, ora è tutto chiarissimo E io ero convinto che != e =! fossero intercambiabili..! sono proprio un niubbo :P

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.