【问题标题】:How do I use a private php class member variable as a key in an array?如何使用私有 php 类成员变量作为数组中的键?
【发布时间】:2026-01-27 13:10:01
【问题描述】:

我正在尝试访问私有成员变量以用作数组中的键。

我的班级看起来像这样:

<?php
class MyClassName {
  private $value;
  private function MyFunction($array){
    $some_html = "<b> $array[$this->value] <b>"; // error occurring on this line
    return some_html;
  }
}
?>

我得到的错误是

PHP Parse error: syntax error, unexpected '-', expecting ']

如果我在使用私有成员变量之前将其存储在数组中,则不会出现语法错误。这解释得很好:

<?php
class MyClassName {
  private $value;
  private function MyFunction($array){
    $cache_key = $this->value;
    $some_html = "<b> $array[$cache_key] <b>";
    return $some_html;
  }
}
?>

我有什么遗漏吗?我想加深对这里发生的事情的理解。谢谢。

【问题讨论】:

  • 当你运行它时,MyFunction 会返回什么(在第二种情况下)?
  • 您的第一个示例没有任何问题,而在第二个示例中,您将 $value 复制到 $cache_key 但未使用它。我的猜测是您的真实代码中某处存在语法错误。
  • 在这里工作:3v4l.org/MgG62
  • 抱歉,我更新了示例以更详细地展示正在发生的事情。我正在尝试返回一个字符串。

标签: php arrays


【解决方案1】:

试试这个:

$some_html = "<b> ".$array[$this->value]." </b>";

【讨论】:

  • 感谢@DNT 解决了我的问题!