替换$in php变量声明
发布时间:2020-12-13 13:04:27 所属栏目:PHP教程 来源:网络整理
导读:我想扩展php语法,以便分辨出可变和不可变的变量. $a应声明为可变(如标准php中所示) 和#b应该声明为不可变的. 我读过Hacking PHP syntax, 我无法弄清楚在哪里可以定义用#声明的变量也应该被标记为T_VARIABLE? 我能够解决这个问题, 需要采取两个步骤: 让PHP
我想扩展php语法,以便分辨出可变和不可变的变量.
$a应声明为可变(如标准php中所示) 我读过Hacking PHP syntax, 我无法弄清楚在哪里可以定义用#声明的变量也应该被标记为T_VARIABLE?
我能够解决这个问题, 需要采取两个步骤: 让PHP不解析’#’作为注释: 更改: <ST_IN_SCRIPTING>"#"|"//" { 至 <ST_IN_SCRIPTING>"//" { 在zend_language_scanner.l年的第1901行 Tokenize #a作为变量: 更改: simple_variable: T_VARIABLE { $$= $1; } | '$' '{' expr '}' { $$= $3; } | '$' simple_variable { $$= zend_ast_create(ZEND_AST_VAR,$2); } ; 至: simple_variable: T_VARIABLE { $$= $1; } | '$' '{' expr '}' { $$= $3; } | '$' simple_variable { $$= zend_ast_create(ZEND_AST_VAR,$2); } | '#' '{' expr '}' { $$= $3; } | '#' simple_variable { $$= zend_ast_create(ZEND_AST_VAR,$2); } ; 在zend_language_parser.y的第1117行 而已 现在这段代码有效: #a=1; echo (#a);//1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |