如何将数组(assoc或seq)转换为类变量:
我有这个数组
[
"uuidtype"=>4,
"data"=>[
"name"=>"Arthur",
"age"=>"unknown"
]
]
我有这堂课:
class Example{
public static function ___g($var_name, $val){
// static $$varname = $val; Doesn't work
// self::${(string)$varname} = $val; Doesn't work
}
}
我想要这个:
class Example{
public static $uuidtype = 4;
public static $data;
...
}
答案 0 :(得分:0)
您可以创建一个数组,然后将其转换为对象,所以:
$arr = [
"uuidtype"=>4,
"data"=>[
"name"=>"Arthur",
"age"=>"unknown"
]
]
$as_class = (object) $arr;
echo $as_class->uuidtype; //Works ;)
我不确定表现,但对我有用。
答案 1 :(得分:0)
您也可以使用Php __get魔术方法。它允许动态创建对象属性。见http://php.net/manual/en/language.oop5.overloading.php#object.get。在How do I dynamically write a PHP object property name?
上提出了类似的问题