首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP循环动态变量

PHP循环动态变量
EN

Stack Overflow用户
提问于 2019-09-24 23:15:30
回答 5查看 768关注 0票数 1

我正在尝试创建一个动态变量。我有一个循环,我希望它循环遍历记录,并为每个记录创建一个变量。我的代码:

代码语言:javascript
运行
复制
$ct = 1;
foreach ($record as $rec){
  $var.$ct = $rec['Name'];
  $ct = $ct + 1;
}

echo $var1;

当我尝试使用上面的代码时,它给我一个错误,告诉我$var1变量不存在/未定义?在PHP中可以像上面的例子一样创建动态变量吗?如果是这样,我做错了什么?

EN

回答 5

Stack Overflow用户

发布于 2019-09-24 23:18:27

你在找variable variables

将变量名创建为字符串,然后将其赋值:

代码语言:javascript
运行
复制
$ct = 1;
foreach( $record as $rec )
{
  $name = 'var'.$ct;
  $$name = $rec['Name'];
  $ct++;
}

echo $var1;

不过,创建一个数组要好得多:

代码语言:javascript
运行
复制
$names = [ ];

foreach( $record as $rec )
{
  $names[] = $rec['Name'];
}

echo $names[0];
票数 2
EN

Stack Overflow用户

发布于 2019-09-24 23:21:17

您可以对{}使用不同的语法

代码语言:javascript
运行
复制
$ct = 1;

foreach ($record as $rec){
    ${'var' . $ct++} = $rec['Name'];
}

echo $var1;

尽管只使用数组不是更好吗?

Working fiddle

票数 1
EN

Stack Overflow用户

发布于 2019-09-24 23:19:40

您可以使用双$。

代码语言:javascript
运行
复制
    $var = "variable";
    $$var = "test";

    echo $variable;
    //echoes "test"

在您的示例中:

代码语言:javascript
运行
复制
$ct = 1;
foreach ($record as $rec){
$varname = "var" . $ct;
  $$varname = $rec['Name'];
  $ct = $ct + 1;
}

echo $var1;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58083416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档