PHP在变量中显示变量(字符串)

时间:2016-03-02 17:27:35

标签: php variables

我有这段代码

$text = "Hello $person";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    echo $text."<br>";
}

目标是显示:

Hello Mike<br>
Hello Tom<br>
Hello Foo<br>

我考虑过使用{}和$$,但这似乎并不合适。 我错过了什么?

6 个答案:

答案 0 :(得分:3)

  

我错过了什么?

您已将$text分配给包含$person的字符串,但$person尚未定义(您应该收到Notice: Undefined variable条消息)。您可以在循环中定义$text,就像许多其他答案所示。但是您的代码示例可能看起来更熟悉sprintf

$text = "Hello %s";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    echo sprintf($text, $person) . "<br>";
}

sprintf()将允许您通过向其传递参数来格式化字符串。

答案 1 :(得分:2)

这应该实现它。

    $persons = array("Mike", "Tom", "Foo");
      foreach ($persons as $person) {
         echo "Hello " . $person . "<br>";
      }

答案 2 :(得分:0)

为了使这更简单,你可以做到

 $persons = array("Mike", "Tom", "Foo"); 
foreach ($persons as $person)
 { echo "hello".$person."<br>";
 }

或者你会这样做

   $text = "Hello";
    $persons = array("Mike", "Tom", "Foo");
     foreach ($persons as $person) 
    { 
    echo $text." ".$person."<br>"; 
    }

答案 3 :(得分:0)

让我们有点创意,可能不是最好的,但它只是一个班轮。

$persons = array("Mike", "Tom", "Foo");
echo vsprintf(str_repeat("Hello %s<br>", count($persons)), $persons);

使用implode

可以实现另一个衬垫
echo "Hello" . implode("<br>Hello ", array("Mike", "Tom", "Foo")) . "<br>";

注意我不建议使用我的解决方案,但与其他人的答案相同会很无聊。

答案 4 :(得分:0)

使用foreach追加你好我正在做的方式是非常相似的!

$persons = array("Mike", "Tom", "Foo");
      foreach ($persons as $person) {
      echo "Hello " . $person. "<br>";// Remove text and append Hello + break tag ofcourse
      }

输出: -

Hello Mike
Hello Tom
Hello Foo

答案 5 :(得分:-1)

试试这个:

$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    $text = "Hello $person";
    echo $text."<br/>";
}

$ text在foreach之外,因此$ person没有回应