Tôi muốn mở rộng cú pháp php
, để phân biệt các biến có thể thay đổi và bất biến.
$a
nên được khai báo có thể thay đổi (như trong php chuẩn) và #b
phải được khai báo không thay đổi.
Tôi đã đọc Hacking PHP syntax,
và tôi không thể tìm ra nơi tôi có thể xác định rằng các biến khai báo với #
cũng nên được tokenized như T_VARIABLE
?
Những vẻ đầy hứa hẹn: [zend_language_parser.y] (https://github.com/php/php-src/blob/438d17e74e3ed7c4c8356a894057200d3b62f425/Zend/zend_language_parser.y#L1117), [Tìm kiếm 'T_Variable'] (https://github.com/php/php-src/search?utf8=%E2%9C%93&q=T_Variable&type=Code) – Kobi
Hãy nhớ rằng # cũng là một ký tự nhận xét trong PHP ... Có lý do nào khiến bạn không thực hiện điều này? Sẽ không phải là một hành động biến không thay đổi như một định nghĩa trong hầu hết các trường hợp? – EJTH
Biến không thay đổi không hoạt động giống như 'php''s' define() ', vì bạn có thể đặt giá trị của nó nhiều lần, nhưng bạn không thể thay đổi giá trị của nó. ví dụ '# a = array (1,2); # a = array (1,3);' là hợp lệ, trong khi '# a = array (1,2); # a [1] = 3; ' thì không. –