我在使用substr()
来自正则表达式的匹配时遇到问题(使用preg_match()
-$a
包含匹配数组)。
回显时a[1]
,它等于0xe84
并且是一个字符串(正如我使用 ' 检查过的那样gettype()
)。
substr($file, $a[2], $a[1]); //not working...
但是如果我这样做了(另请注意,我实际上不能这样做,因为第三个参数是来自正则表达式的通用 - 这只是用来说明我的问题):
substr($file, $a[2], 0xe84); //works fine - when entering the match directly as an integer
所以我的问题是为什么substr()
只有当第三个参数是整数类型时才有效,我怎样才能制作$a[1]
一个整数才能正常工作?
我尝试过进行类型转换(使用(int)
),使用intval()
以及settype(integer)
on $a[1]
,$a[1]
然后变成0
(并且substr()
不起作用)。