PHP常量字符串方括号索引

时间:2010-06-25 04:41:30

标签: php string arrays indexing constants

我正在尝试获取一个常量字符串并将其索引,就好像它是一个字符数组(方括号语法)。当我尝试这段代码时,它在最后一行失败了。

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.

我在函数中使用这样的常量字符串。因为它可以在一个页面上多次调用,所以它确实应该是一个常量。如果没有办法按照我最初的预期做到这一点,最好的选择是什么。

1 个答案:

答案 0 :(得分:4)

PHP Constants只能是标量值,因此引擎不会尝试正确解析常量,而不是标量,如数组或对象。

这是一个问题,因为括号用于指向数组索引可以用作获取字符串中特定位置的字符的快捷方式。

你必须以“硬”的方式去做并使用substr()