我正在尝试获取一个常量字符串并将其索引,就好像它是一个字符数组(方括号语法).当我尝试这个代码时,它在最后一行失败了.
define( 'CONSTANT_STRING','0123456789abcdef');
echo CONSTANT_STRING; // Works by itself :)
$string = CONSTANT_STRING;
echo $string[9]; // Also works by itself.
echo strlen(CONSTANT_STRING); // Also works by itself.
echo substr(CONSTANT_STRING, 9, 1); // Ok, yes this works, but not as clean.
echo CONSTANT_STRING[9]; // Fails as a syntax (parse) error.
我在函数中使用这样的常量字符串.因为它可以在一个页面上多次调用,所以它确实应该是一个常量.如果没有办法按照我原先的意图做到这一点,最好的选择是什么.
解决方法:
PHP Constants只能是标量值,因此引擎不会尝试正确解析常量,而不是标量,如数组或对象.
在您的情况下这是一个问题,因为括号用于指向数组索引,并且可以用作在字符串中的特定位置抓取字符的快捷方式.
你只需要以“硬”的方式去做,并使用substr().