PHP常量字符串方括号索引

4

我想获取一个常量字符串,并像字符数组一样对其进行索引(使用方括号语法)。当我尝试运行这段代码时,它会在最后一行失败。

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个回答

4
PHP常量只能是标量值,所以引擎不会尝试正确解析作为标量以外的某些东西使用的常量,例如数组或对象。

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

你只能通过使用substr()来完成“困难”的方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接