In PHP, è possibile definire una costante, che non avrebbe quindi uno $
, ma una variabile deve averne uno. Tuttavia, questa NON è una variabile e non è un sostituto di una variabile. Le costanti devono essere definite esattamente una volta e non modificate per tutta la durata dello script.
define('a', 'some value for a');
Inoltre, non è possibile interpolare il valore di una costante all'interno di una stringa con virgolette doppie o heredoc:
$a = "variable a"
define('a', 'constant a');
echo "A string containing $a";
// "A string containing variable a";
// Can't do it with the constant
echo "A string containing a";
// "A string containing a";
Infine, PHP può emettere un avviso per un Use of undefined constant a - assumed 'a'
e interpretare come erroneamente non quotate stringa "a"
. Cerca nel tuo log degli errori per vedere se ciò sta accadendo. In tal caso, "a" == TRUE
è valido, poiché la stringa "a"
non è vuota e viene confrontata liberamente con il valore booleano VERO.
echo a == TRUE ? 'true' : 'false';
// Prints true
// PHP Notice: Use of undefined constant a - assumed 'a'
fonte
2011-08-22 13:04:03
provare: 'error_reporting (E_ALL^E_STRICT);' E php ti dirà che non è riuscito a trovare '$ a' e utilizzerà invece un letterale' a' (che indica il carattere a) per il comparsion. – Yoshi
@Yoshi: scrivi una risposta; p –
@Tomalak Geret'kal Michael include già questo punto e ha anche una spiegazione migliore.; P – Yoshi