【问题标题】:Returning arrays and accessing values [duplicate]返回数组和访问值
【发布时间】:2011-11-10 22:42:14
【问题描述】:

我对 PHP 还很陌生,我正在尝试从类函数返回一个数组,然后像这样访问它的值:

  <?php 
    class Foo
        {
            private $access;

            public function setAccess($access)
            {
                $this->access = $access;
            }


            public function getAccess()
            {
                return $this->access;
            }
        }


$var = new Foo();
$var->setAccess(array(1,2,3,4));

$var2 = $var->getAccess()[2];

echo $var2;

?>

当我尝试使用此代码运行页面时,我得到以下信息:

Parse error: syntax error, unexpected '[' in arraytest.php on line 22

如何访问班级中私有数组的值?

【问题讨论】:

    标签: php


    【解决方案1】:

    这个:

    $var2 = $var->getAccess()[2];
    

    无法在 PHP 5.4 之前的版本中完成(此功能称为数组解引用)。目前你必须做这样的事情:

    $var2 = $var->getAccess();
    $var2 = $var2[2];
    

    【讨论】:

    • 感谢您告诉我 PHP 版本和名称(数组取消引用)。我很难找到相关的问题。
    【解决方案2】:

    你不能像这样直接调用一个数组值,你必须这样写:

    $access = $var->getAccess();
    $var2 = $access[2];
    

    或者,您可以将这样的函数添加到您的类中。

    public function getAccessValue($key) {
      return $this->access[$key];
    }
    

    【讨论】:

    • 啊,我最初写了一个这样的函数,但是我希望有更好的方法。我将先将数组存储到一个变量中,然后取消引用,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-05-08
    • 2011-02-21
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多