возможно ли, чтобы указана переменная без использования $?
Например:
if ($a != 0 && a == true) { ... }
Я так не думаю, но код (не написанный мной) не показывает ошибку, и я думаю, что это странно. Я пропустил код, а также не постоянный.
В PHP может быть определена константа, которая тогда не имела бы $
, но переменная должна иметь один. Однако это НЕ переменная и не является заменой переменной. Константы предназначены для определения точно один раз и не изменяются на протяжении всего срока действия скрипта.
define('a', 'some value for a');
Кроме того, вы не можете интерполировать значение константы внутри строки с двойным кавычкой или 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";
Наконец, PHP может выдать уведомление об Use of undefined constant a - assumed 'a'
и интерпретировать ее как ошибочно некорректную строку "a"
. Посмотрите в свой журнал ошибок, чтобы узнать, происходит ли это. В этом случае "a" == TRUE
действителен, так как строка "a"
не пуста и сравнивается с логическим TRUE.
echo a == TRUE ? 'true' : 'false'; // Prints true // PHP Notice: Use of undefined constant a - assumed 'a'
С помощью этого кода:
if ($a != 0 && a == true) { ... }
Вы не получаете никакой ошибки, потому что вы (или кто-то еще) сказали PHP не сообщать об ошибках, предупреждениях или уведомлениях с этим кодом. Вы устанавливаете отчет об ошибках на более высокий уровень, и вы получите уведомление:
Примечание: использование неопределенной константы a – предполагается «a» в …
Это будет означать, что a
читается как константа со значением "a"
. Я думаю, это не то, что вы на самом деле ищете.
if ($a != 0 && "a" == true) { ... }
Вторая часть "a" == true
всегда будет true
, так что это на самом деле так:
if ($a != 0) { ... }
Поскольку это не ваш код, можно только предположить, что это не было предназначено оригинальным автором.
Итак: переменные в PHP всегда начинаются со знака доллара $
. Все остальное не является переменной.
По определению переменная ДОЛЖНА начинаться с $. Кроме того, он не может начинаться с числа, поэтому имя переменной, например $ 1badVar, недействительно. Однако он может начинаться с букв или символов подчеркивания.