下面是我的一个函数的片段,但我认为这似乎是多余的,因此想要避免它。
function cellMaker($cell){
$label= $cell['label'];
$type= $cell['type'];
$return= $cell['return'];
$size= $cell['size'];
$name= $cell['name'];
$value= $cell['value'];
........
我这样做的原因是为了避免必须用函数填充空值,如果我只需要传递两个参数,比如标签,类型和值。这看起来像cellMaker('how?', 'text' null, null, null, 'because');
相反,我只需要做cellMaker(["label" => "how?", "type"=> "text", "value" => "because"])
,这使我不必记住函数中定义变量的顺序,也不必处理不必要的变量。但是,我也不想每次都输入$cell['variable']
而不是$variable
。
有没有办法自动将对象的所有变量分配给同名的函数变量?
答案 0 :(得分:1)
您可以使用extract
函数从数组中获取单独的变量。
$array = ["label" => "how?", "type"=> "text", "value" => "because"];
extract($array);
这将为您提供三个以包含相应值的数组中的键命名的变量。 但请注意。它可能变得相当不可预测。您无法确定输入数组中可能存在哪种键。