【问题标题】:PHP constant string square bracket indexingPHP 常量字符串方括号索引
【发布时间】:2011-03-08 03:12:22
【问题描述】:

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

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 string arrays indexing constants


    【解决方案1】:

    PHP Constants 只能是标量值,因此引擎不会尝试正确解析用作标量以外的其他内容的常量,例如数组或对象。

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

    您只需要以“硬”的方式进行操作并使用substr()

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 2014-09-26
      相关资源
      最近更新 更多