我有一个静态类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')
答案 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::
访问同一类中的静态属性/方法