E usare la sintassi alternativa che è molto più chiara?
Codice PHP:
if (A8 = NULL):
A9 = A8 + 10;
else:
A9 = NULL;
endif;
E usare la sintassi alternativa che è molto più chiara?
Codice PHP:
if (A8 = NULL):
A9 = A8 + 10;
else:
A9 = NULL;
endif;
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
ASSOLUTAMENTE NO!Originariamente inviato da jos3ph
se fai £B8='' php assegna alla variabile $B8 un valore nullo.
Questo è un errore comunissimo, ma molto grave: la stringa vuota, ovvero "" , NON corrisponde affatto a null; tant'è vero che se scrivo:
if (is_null("")):
echo "E' nullo";
else:
echo "Non è nullo";
endif;
mi stampa "Non è nullo"...
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
anche tu hai fatto lo stesso erroreOriginariamente inviato da Shores
E usare la sintassi alternativa che è molto più chiara?
Codice PHP:
if (A8 = NULL):
A9 = A8 + 10;
else:
A9 = NULL;
endif;
allora, vediamo se riesco a spiegarlo.
se fai "if ($a8=null)"
o se fai "if ($a8='')"
php non fa un confronto fra il valore di $a8 e '' o "null" ma assegna alla variabile $a8 IL VALORE null.
= non è un operatore di confronto, ma di assegnazione, percui quell' "if" sarà sempre valido.
per fare un confronto dovete usare o == (che fa un confronto di valore) o === (che oltre al valore confronta anche il tipo).
poi, per quanto riguarda la sintassi, sono valide entrambe, null o '' sono la stessa cosa![]()
Hai ragione, ho sbagliato a digitare, ho scritto = mentre avrei dovuto scrivere == , ma questo non cambia il fatto che se all'inizio lui aveva chiesto di verificare che una certa variabile contenesse il valore NULL (vedi il post iniziale del thread) è sbagliato proporgli $a=="" , bisogna scrivere $a==null o meglio ancora is_null($a) ...
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
E' proprio questo che è ASSOLUTAMENTE FALSO!Originariamente inviato da jos3ph
...
poi, per quanto riguarda la sintassi, sono valide entrambe, null o '' sono la stessa cosa![]()
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
mi potresti spiegare in cosa sono diverse?Originariamente inviato da Shores
E' proprio questo che è ASSOLUTAMENTE FALSO!
è una richiesta sincera, io pensavo fosse la stessa cosa![]()
Null significa che non punta verso niente.Originariamente inviato da jos3ph
mi potresti spiegare in cosa sono diverse?
è una richiesta sincera, io pensavo fosse la stessa cosa![]()
Ogni istruzione ha un suo indirizzo (una posizione) in memoria;Null signilfica che la variabile a cui l'hai assegnato e lì, tenuta da parte, se così si può dire e basta....niente valori.....
oppureCodice PHP:
$a=" ";
Equivalgono alla stringa vuota, bene o male hanno valore; Null non è un valore....è Null(a)Codice PHP:
$a=' ';
Tra l'altro c'è stato anche un errore in quel confronto....Un null non si può sommare ad un numero....
Che poi venga accettato lo stesso con il casting automatico è un altro paio di maniche......
Samplicemente, il valore NULL è un valore diverso dalla stringa vuota "" ; NULL è un valore che non contiene nulla, e di solito lo si usa per indicare esplicitamente che non è stato restituito nessun valore, mentre una stringa vuota è una stringa come tutte le altre, solo che non ha nessun carattere dentro!
Concettualmente i due valori sono diversissimi, anche se, grazie al fatto che PHP effettua delle conversioni di tipo automatiche continuamente, non sempre la cosa è visibile chiaramente.
Per esempio, se su di una URL hai:
pagina.php?nome=
avrai che $_GET["nome"] è uguale alla stringa vuota "" , ma se per caso usi is_null($GET["nome"]) per verificare se ti è stato passato un parametro get, non riuscirai a intercettare e dare errore per una url del genere, visto che appunto ""!=NULL ...
Qui trovi una completa spiegazione dei tipi di dati in php, che spiega ancor meglio NULL
http://it.php.net/manual/it/language.types.php
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
Comunque quelle due che hai postato non sono stringhe vuote, ma stringhe che contengono uno spazio...Originariamente inviato da simulacron
Null significa che non punta verso niente.
Ogni istruzione ha un suo indirizzo (una posizione) in memoria;Null signilfica che la variabile a cui l'hai assegnato e lì, tenuta da parte, se così si può dire e basta....niente valori.....
oppureCodice PHP:
$a=" ";
Equivalgono alla stringa vuota, bene o male hanno valore; Null non è un valore....è Null(a)Codice PHP:
$a=' ';
Tra l'altro c'è stato anche un errore in quel confronto....Un null non si può sommare ad un numero....
Che poi venga accettato lo stesso con il casting automatico è un altro paio di maniche......
In più, non userei l'espressione "non punta a nulla", è fuorviante perchè fa pensare che le variabili di PHP siano puntatori a celle di memoria, cosa che non è vera...
"Le uniche cose che sbagli sono quelle che non provi a fare."
Atipica
Hai ragione....
Ho scritto impropiamente....pensavo solo di evidenziare quello che intendevo dire.....
Ho fatto un errore,mi spiace...
Per quell'altra cosa...è stato un riflesso incondizionato....
In ogni caso, intendevo dire quello che hai detto tu....più o meno....