假设我有以下数组,如何将其输出为变量?
$required = array('fname', 'email','lname');
例如这样的例子:$fname,$email,$lname
我想将该数组作为函数参数输出(具有确切的顺序)
像这样:
$mymail=smtpmailer($to, [required array here]);
所以我只想编辑数组,该元素将作为变量动态地解析到函数的参数中
答案 0 :(得分:2)
假设您要传递存储在变量中的值,这些变量的名称由$required
中的元素标识,则将是这样的(使用最新的PHP版本)。
$fname = "John";
$email = "john@example.com";
$lname = "Doe";
$mymail = smtpmailer($to, ...array_values(compact(...$required)));
但是,如果您想将值从$required
传递到smtpmailer()
函数中,那么您想要
$required = ["John", "john@example.com", "Doe"];
$mymail = smtpmailer($to, ...$required);
答案 1 :(得分:1)
所以您要创建动态变量。
假设您使用的是关联数组:
cd "d:\temp\"
for /r %%i in (*.xlsx) do "C:\temp\cnv.exe" "%%i"........ "-layout"?
以下是创建$required = array(
"fname" => "First name",
"lname" => "Last name",
"email" => "someone@example.com"
);
,$fname
和$lname
变量的方法:
$email
现在,您可以使用名称来引用变量,例如:
foreach ($required as $key => $value) {
${$key} = $value;
}
答案 2 :(得分:0)
如果数组没有键并且始终处于相同顺序,则可以使用语言构造list。
例如:
$required = array('John', 'joh.doe@example.com','Doe');
list($fname, $email, $lname) = $required;
$mymail = smtpmailer($to, $fname,$email,$lname);
答案 3 :(得分:0)
如果您希望这些文本元素“ to”,“ fname”,“ lname”和“ email”成为值旁边的关联数组的键,如下面的示例所示,可以按以下方式使用“ extract”函数
$required = array('to'=>'bobmartin@gmail.com','fname'=>'Bob', 'email'=>'grags@gmail.com','lname'=>'Martin');
extract($required);
$mymail=smtpmailer($to, $fname,$email,$lname);
否则,如果您已经在$ to,$ fname,$ email和$ lname变量的顶部定义了值,并且想动态地使这些字符串成为变量并需要传递给函数,则应使用eval函数可将每个字符串动态转换为变量,并使用call_user_func_array如下动态传递这些值
$required = array('to','fname', 'email','lname');
$inputar = array();
foreach($required as $el)
array_push($inputar,eval('return $'. $el . ';'));
call_user_func_array("smtpmailer", $inputar);