我的Php函数通过mysql表循环,对于每一行,它将行名设置为$var,将行值设置为$val。
foreach($row as $var => $val) {...
现在我想将收到的行名 ($var) 设置为新变量。
这个例子是不对的,但要解释我的想法;$name$var = $val
如果$var将是 = 行名 1那么新变量将是 $rowname 1 = 值 1
任何想法如何实现这一目标?
谢谢。
您可以使用变量来执行此操作:
foreach(...) {
$$var = $val;
}
但更干净的是使用数组:
foreach(...) {
$var_names[] = array($var => $val);
}
<?php
$array = array(
'go' => 'something1',
'go2' => 'something2',
'go3' => 'something3',
'go4' => 'something4',
'go5' => 'something5',
);
foreach ($array as $key => $val) {
${$key} = $val;
}
print $go;
?>
EXAMPLE
或者您可以使用此处解释的$$
方式: Read more about Variable Variables...
你可以
像${$var} = $val
一样使用它。大括号只是为了方便和可读性。 $$var = $val
也应该有效。
您可以使用字符串动态创建具有动态名称的变量!此处提供的文档支持此功能
举个简单的例子:
// This now holds the string hello
$variableName = 'hello';
// This creates the variable 'hello' and contains the value test
$$variableName = "test";
echo $hello;
完成上述示例后,您将能够使用键 + 值字符串创建变量名称,如下所示:
$count = 1;
foreach($row as $var => $val)
{
$varName = $var.$count;
$$varName = $val;
$count++;
}
这将创建column_name1、column_name2等。
我觉得有必要增加一点自由裁量权,因为这不是常见或最佳实践。处理此信息的最佳方法是获取 $key => $val 对并将其存储到单独的变量中或通过它们进行解析。通过这样做,您基本上抛弃了使用数组的所有易用性。
另外,旁注:
您也可以通过这种方式动态调用方法。
function test()
{
echo "test yar";
}
$method = "test";
$method();