PHP变量用于将数字设置为变量名称的一部分

时间:2015-04-10 22:52:08

标签: php

使用PHP我有一个从用户输入发出Text Line的表单。

每个text line还有其他数据。因此,用户提交的每个text line都有以下数据:

  • 文字行字符串
  • 文字线颜色
  • 文字行字体名称

用户可以在表单帖子中提交 1到6 Text Lines的任何位置。

所以在后端PHP脚本中我试图做这样的事情......

//Sign Text Lines
$numberOfTextLines = $this->getRequest()->getPost('count'); // 4

for ($line=1; $line <= $numberOfTextLines; $line++) {

    $line1Text = $this->getRequest()->getPost('line-1-text');
    $line1TextColor = $this->getRequest()->getPost('line-1-colorpicker');
    $line1TextFont = $this->getRequest()->getPost('line-1-font');

}

$numberOfTextLines保存用户在POST中提交的Text Lines个数。

因此,使用这么多行,我想循环这么多次并设置一个变量来保存每行文本的Text Line stringcolorfont值提交。

在上面的例子中,它将是 4行文字。所以它需要循环4次并为每一行设置3个变量。 4行文字x 3个变量= 12个变量共设置

在我的脚本的其他部分,我应该可以轻松地在下面执行以下操作来检查是否存在文本行,如果存在,则应该能够访问它的值...

if(isset($line4Text) && $line4Text != ''){
    echo 'Line 4 Text: ' . $line4Text;
    echo 'Line 4 Text Color: ' . $line4TextColor;
    echo 'Line 4 Text Font: ' . $line4TextFont;
}else{
    $line4Text = '';
    $line4TextColor = '';
    $line4TextFont = '';
}

所以你可以看到,我需要一个存储在变量$numberOfTextLines中的数字,它可以是1到6之间的任何值。

根据数字,我需要多次循环并为每个数字设置3个变量。将变量名称中的数字替换为行号。因此,在下面的3个变量中,名称中的数字4将根据循环迭代中的数字替换为相应的数字:

$line4Text
$line4TextColor
$line4TextFont

我不知道该怎么做但我认为可能与Variable Variables有关?

1 个答案:

答案 0 :(得分:2)

是的,这正是使用variable variables的内容,您只需使用卷曲语法:

${"line". $line . "Text"} = $this->getRequest()->getPost('line-' . $line . '-text');
${"line" . $line . "TextColor"} = $this->getRequest()->getPost('line-' . $line . '-colorpicker');
${"line" . $line . "TextFont"} = $this->getRequest()->getPost('line-' . $line . '-font');