【发布时间】:2015-05-28 07:18:28
【问题描述】:
我再次使用token_get_all() 付款并遇到了一些“特别”的东西:
鉴于以下 PHP 代码行:
<?php $var = 3 * 2 + 5;
当我在上面使用token_get_all() 时,我会得到一个令牌数组:
array(15) {
[0]=>
array(3) {
[0]=>
int(376)
[1]=>
string(6) "<?php "
[2]=>
int(1)
}
[1]=>
array(3) {
[0]=>
int(312)
[1]=>
string(4) "$var"
[2]=>
int(1)
}
[2]=>
array(3) {
[0]=>
int(379)
[1]=>
string(1) " "
[2]=>
int(1)
}
[3]=>
string(1) "="
[4]=>
array(3) {
[0]=>
int(379)
[1]=>
string(1) " "
[2]=>
int(1)
}
[5]=>
array(3) {
[0]=>
int(308)
[1]=>
string(1) "3"
[2]=>
int(1)
}
[6]=>
array(3) {
[0]=>
int(379)
[1]=>
string(1) " "
[2]=>
int(1)
}
[7]=>
string(1) "*"
[8]=>
array(3) {
[0]=>
int(379)
[1]=>
string(1) " "
[2]=>
int(1)
}
[9]=>
array(3) {
[0]=>
int(308)
[1]=>
string(1) "2"
[2]=>
int(1)
}
[10]=>
array(3) {
[0]=>
int(379)
[1]=>
string(1) " "
[2]=>
int(1)
}
[11]=>
string(1) "+"
[12]=>
array(3) {
[0]=>
int(379)
[1]=>
string(1) " "
[2]=>
int(1)
}
[13]=>
array(3) {
[0]=>
int(308)
[1]=>
string(1) "5"
[2]=>
int(1)
}
[14]=>
string(1) ";"
}
请注意,数学运算符(=、*、+)和分号(;)不是标记,而只是字符串。我希望为+ 等得到T_MATH_ADDITION 之类的东西。
为什么上面的那些“指令”不作为令牌处理?
【问题讨论】: