通过数组中的键获取值

时间:2017-02-06 10:34:30

标签: php arrays

我有一个静态类Tools,我在其中定义了一个方法getMsg()来检索变量:带有键和值的数组:

private $Msg = array()

public static function getMsg()
{
    return $this->Msg;
}

然后我在另一个类中使用此变量:

Tools::getMsg()['key'] = $this->message;

我的问题是,我希望通过提供密钥来获得价值。我知道php函数

  

array_search - 在数组中搜索给定值并返回   如果成功,首先对应的密钥

但是有没有一个函数来搜索数组中的给定键? 我不知道上面代码的语法是否正确,如果不是,我可能需要使用函数。

以下是Msg数组的示例:

$Msg = array('Class1' => 'File does not exist', 
'Class2' => 'Error in timestamp format')

2 个答案:

答案 0 :(得分:1)

要访问数组,您不需要使用内置函数。只需按如下方式访问数组即可。

$arr = array('foo' => 42, 'bar' => 'rab', 'baz' => false); // example array
echo $arr['bar']; // will output 'rab'
$key = 'foo';
echo $arr[$key]; // will output 42

作为旁注:您不能在静态上下文中使用$this。使用self::$Msg并将$Msg声明为private static $Msg,或使访问权限完全不是静态的。您的代码可以是以下几行。

private static $Msg = array();

public static function getMsg()
{
    return self::$Msg;
}

答案 1 :(得分:1)

<?php
class Tools
{
    private static $Msg = [];

    public static function getMsg($key)
    {
        return self::$Msg[$key]
    }

}

$message = Tools::getMsg('test'); // returns Tools::$Msg['test']

我认为PHP中没有“静态类”。虽然不确定其他语言。使用self::访问同一类中的静态属性/方法