gpt4 book ai didi

php - 替换 php 变量声明中的 $

转载 作者:可可西里 更新时间:2023-11-01 12:39:59 25 4
gpt4 key购买 nike

我想扩展 php 语法,以便区分可变变量和不可变变量。

$a 应该被声明为可变的(就像在标准的 php 中一样)和 #b 应该声明为不可变的。

我读过 Hacking PHP syntax ,

我不知道在哪里可以定义用 # 声明的变量也应该标记为 T_VARIABLE

最佳答案

我能够解决这个问题,需要采取两个步骤:

使 PHP 不将 '#' 解析为注释:

改变:

<ST_IN_SCRIPTING>"#"|"//" {

<ST_IN_SCRIPTING>"//" {

zend_language_scanner.l 中的第 1901 行

#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

关于php - 替换 php 变量声明中的 $,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30570763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com