PHP - 如何自动将对象变量分配给函数变量?

时间:2016-06-27 15:26:41

标签: php

下面是我的一个函数的片段,但我认为这似乎是多余的,因此想要避免它。

 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

有没有办法自动将对象的所有变量分配给同名的函数变量?

1 个答案:

答案 0 :(得分:1)

您可以使用extract函数从数组中获取单独的变量。

$array = ["label" => "how?", "type"=> "text", "value" => "because"];
extract($array);

这将为您提供三个以包含相应值的数组中的键命名的变量。 但请注意。它可能变得相当不可预测。您无法确定输入数组中可能存在哪种键。