En PHP, se puede definir una constante, que entonces no tendría un $
, pero una variable debe tener una. Sin embargo, esto NO es una variable, y no es un sustituto de una variable. Se pretende que las constantes se definan exactamente una vez y no se modifiquen a lo largo de la vida del script.
define('a', 'some value for a');
Además, no se puede interpolar el valor de una constante dentro de una entre comillas dobles o heredoc cadena:
$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";
Por último, PHP puede emitir un aviso para un Use of undefined constant a - assumed 'a'
e interpretarlo como un error no indicada cadena "a"
. Mire en su registro de errores para ver si eso está sucediendo. En ese caso, "a" == TRUE
es válido, ya que la cadena "a"
no está vacía y se compara libremente con el valor booleano TRUE.
echo a == TRUE ? 'true' : 'false';
// Prints true
// PHP Notice: Use of undefined constant a - assumed 'a'
try: 'error_reporting (E_ALL^E_STRICT);' Y php le dirá que no pudo encontrar '$ a' y en su lugar usará literal' a' (que significa el carácter a) para la comparación. – Yoshi
@Yoshi: Escriba una respuesta; p –
@Tomalak Geret'kal Michael ya incluye este punto e incluso tiene una mejor explicación.; P – Yoshi