Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Uso apici '' (problemino da principianti)

    Cari phpisti...
    mi potete spiegare in poche parole la differenza che c'è tra:

    $variabile = $_GET['valore']; e $variabile = $_GET[valore]; ?

    e nel caso di DB resource echo $row['campo1']; e echo $row[campo1];

    e in questo caso?

    echo "aaaaa $_GET['valore']"; e echo "bbbbb $_GET[valore]";

    lo so che se mi becca il prof. di informatica mi toglie il diploma
    ma è la prima volta che "lavoro" su un server mio anziché su un dominio
    del tipo quello che va molto a ruba adesso.. o un altro che par essere il top degli host....
    ecc... e in statistics/log/error_log ho degli errori che non ho mai incontrato...
    e così su due piedi non riesco a trovare un manuale così elementare...
    Chiedo umilmente perdono a tutti...

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,290
    Non è così banale come sembra.

    Qua (a metà doce c'è scritto Why is $foo[bar] wrong?) c'è un esempio
    http://php.net/manual/en/language.types.array.php

    Il modo corretto è con gli apici, senza ti da un warning.

  3. #3
    Come ti hanno gia risposto il modo corretto è con gli apici
    perchè $_GET sarebbe un array generale delle variabili get
    quindi senza apici non richiama la variabile e puo dare errore

  4. #4

    Re: Uso apici '' (problemino da principianti)

    Originariamente inviato da saggio68
    Cari phpisti...
    mi potete spiegare in poche parole la differenza che c'è tra:

    $variabile = $_GET['valore']; e $variabile = $_GET[valore]; ?

    e nel caso di DB resource echo $row['campo1']; e echo $row[campo1];

    e in questo caso?

    echo "aaaaa $_GET['valore']"; e echo "bbbbb $_GET[valore]";

    lo so che se mi becca il prof. di informatica mi toglie il diploma
    ma è la prima volta che "lavoro" su un server mio anziché su un dominio
    del tipo quello che va molto a ruba adesso.. o un altro che par essere il top degli host....
    ecc... e in statistics/log/error_log ho degli errori che non ho mai incontrato...
    e così su due piedi non riesco a trovare un manuale così elementare...
    Chiedo umilmente perdono a tutti...
    Questo e' uno dei difetti di PHP dovuti al troppo buonismo degli sviluppatori. Una cosa del genere dovrebbe dare un fatal error non un warning.

    Il problema e' che questo uso puo' causare bug difficili da risolvere (per utenti non esperti).
    La versione senza apici generalmente funziona, ma non e' detto che lo faccia. Quello che fa PHP quando incontra una bareword (cioe' una parola che non e' riservata dal linguaggio e non e' racchiusa tra apici o virgolette) e' cercare se e' stata definita una costante con quel nome. Se e' stata definita allora sostituisce la parola col valore della costante, se non e' stata definita allora utilizza la parola cosi' com'e' come se fosse racchiusa da apici/virgolette.

    Ovviamente puoi scrivere la versione senza apici 200 volte e funziona, poi una volta ti trovi ad usare una parola che hai definito come costante e il tuo codice misteriosamente non funziona piu'.

    Per farla breve, gli indici degli array vanno SEMPRE messi tra virgolette o apici.

  5. #5
    ok... grazie....

    il costrutto "zzz {$row['pippo']} qqq" neppure lo conoscevo....

    ... che asino.

    Grazie.

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.