Я хотел бы расширить синтаксис php
, чтобы рассказать обо всех изменяемых и неизменяемых переменных.
$a
должно быть объявлено изменчивым (как в стандартном php) и #b
должно быть объявлено неизменным.
Я прочитал Hacking PHP syntax,
, и я не мог понять, где я могу определить, что переменные, объявленные с #
также должны быть лексемы, как T_VARIABLE
?
Они кажутся многообещающими: [zend_language_parser.y] (https://github.com/php/php-src/blob/438d17e74e3ed7c4c8356a894057200d3b62f425/Zend/zend_language_parser.y#L1117), [Поиск 'T_Variable'] (https://github.com/php/php-src/search?utf8=%E2%9C%93&q=T_Variable&type=Code) – Kobi
Имейте в виду, что # также является символом комментария в PHP ... Есть ли какая-то причина, по которой вы этого не сделали? Не будет ли в большинстве случаев неизменяемая переменная действовать как определение? – EJTH
Неизменяемая переменная не ведет себя как 'php'' define() ', так как вы можете установить ее значение несколько раз, но вы не можете изменить ее значение. , например '# а = массив (1,2); # а = массив (1,3);' является действительным, в то время как '# а = массив (1,2); # а [1] = 3; ' нет. –