Подтвердить что ты не робот

Почему $M-; синтаксически действителен и что он делает?

Я не считаю себя экспертом по PHP, но я разработал несколько страниц, содержащих несколько тысяч строк кода. Для моего текущего проекта, который предназначен для игрового сайта, я обратил внимание на существующую функцию, содержащую строку

$M–;

Теперь мое базовое понимание PHP говорит мне, что это не работает, так как это должно быть - для краткости -1. Но это не тире, script работает без ошибок (error_reporting (E_ALL)), но повторение $M до и после дает мне то же самое значение.

Итак, что он делает и почему я не получаю ошибку?

4b9b3361

Ответ 1

Это en dash, который для PHP является просто случайным байтом без определенного значения. $M–, или в кодировке UTF-8 4DE28093, является допустимым именем переменной. Также как $漢字.

Одна переменная сама по себе просто инициализирует эту переменную до null, если она еще не существует, строка ничего не делает else.

Ответ 2

Этот код вашего сообщения приведет к уведомлению. Во-первых, потому что это не знак минус vs - < - different (если у вас нет имени переменной M–).

Примечание: переменная Undefined: M-in

Второй, даже если это знак минус, он выплюнул уведомление.

Ошибка анализа: синтаксическая ошибка, неожиданный ';' в

Если что-то только показывает, что вы неправильно включили полное сообщение об ошибках или что вы используете символы Unicode в именах переменных, просто вставляйте других людей, читающих ваш код (включая вас самих).;)

UPDATE

Я немного исказил ваш код. Случается, что вы выполняете инициализацию переменной M– при выполнении этой строки, поэтому M– будет null.

Ответ 3

Похоже, он мог бы интерпретировать его как $M - null; $M минус нуль по существу. Что бы ничего не делало?