替换 php 变量声明中的 $
replace the $ in php variable declaration
我想扩展 php
语法,以便区分可变变量和不可变变量。
$a
应该声明为可变的(与标准 php 一样)
#b
应该声明为不可变的。
我不知道在哪里可以定义用 #
声明的变量也应该标记为 T_VARIABLE
?
我的第一个猜测是看看您是否可以在项目的 php.ini 文件中更改它,但是没有允许您更改符号的选项。 http://php.net/manual/en/ini.list.php
我最好的猜测是您需要查看实际的 PHP 代码库或询问 PHP 社区他们是否会为您添加此功能。
我能够解决这个问题,
需要采取两个步骤:
使 PHP
不解析 '#'
作为注释:
变化:
<ST_IN_SCRIPTING>"#"|"//" {
到
<ST_IN_SCRIPTING>"//" {
第 1901 行 zend_language_scanner.l
将 #a
标记为变量:
变化:
simple_variable:
T_VARIABLE { $$ = ; }
| '$' '{' expr '}' { $$ = ; }
| '$' simple_variable { $$ = zend_ast_create(ZEND_AST_VAR, ); }
;
收件人:
simple_variable:
T_VARIABLE { $$ = ; }
| '$' '{' expr '}' { $$ = ; }
| '$' simple_variable { $$ = zend_ast_create(ZEND_AST_VAR, ); }
| '#' '{' expr '}' { $$ = ; }
| '#' simple_variable { $$ = zend_ast_create(ZEND_AST_VAR, ); }
;
的第 1117 行
就是这样
现在这段代码可以工作了:
#a=1;
echo (#a);//1
我想扩展 php
语法,以便区分可变变量和不可变变量。
$a
应该声明为可变的(与标准 php 一样)
#b
应该声明为不可变的。
我不知道在哪里可以定义用 #
声明的变量也应该标记为 T_VARIABLE
?
我的第一个猜测是看看您是否可以在项目的 php.ini 文件中更改它,但是没有允许您更改符号的选项。 http://php.net/manual/en/ini.list.php
我最好的猜测是您需要查看实际的 PHP 代码库或询问 PHP 社区他们是否会为您添加此功能。
我能够解决这个问题, 需要采取两个步骤:
使 PHP
不解析 '#'
作为注释:
变化:
<ST_IN_SCRIPTING>"#"|"//" {
到
<ST_IN_SCRIPTING>"//" {
第 1901 行 zend_language_scanner.l
将 #a
标记为变量:
变化:
simple_variable:
T_VARIABLE { $$ = ; }
| '$' '{' expr '}' { $$ = ; }
| '$' simple_variable { $$ = zend_ast_create(ZEND_AST_VAR, ); }
;
收件人:
simple_variable:
T_VARIABLE { $$ = ; }
| '$' '{' expr '}' { $$ = ; }
| '$' simple_variable { $$ = zend_ast_create(ZEND_AST_VAR, ); }
| '#' '{' expr '}' { $$ = ; }
| '#' simple_variable { $$ = zend_ast_create(ZEND_AST_VAR, ); }
;
的第 1117 行
就是这样
现在这段代码可以工作了:
#a=1;
echo (#a);//1