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

PHP在变量(字符串)中显示变量,php,variables,Php,Variables,我有这个密码 $text = "Hello $person"; $persons = array("Mike", "Tom", "Foo"); foreach ($persons as $person) { echo $text."<br>"; } $text=“你好$person”; $persons=数组(“Mike”、“Tom”、“Foo”); foreach($人作为$人){ 回显$text.“”; } 目标是展示: Hello Mike<br> He

我有这个密码

$text = "Hello $person";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    echo $text."<br>";
}
$text=“你好$person”;
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
回显$text.“
”; }
目标是展示:

Hello Mike<br>
Hello Tom<br>
Hello Foo<br>
你好,迈克
你好,汤姆
喂,福
我曾考虑过使用{}和$$,但这似乎不合适。 我缺少什么?

试试这个:

$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    $text = "Hello $person";
    echo $text."<br/>";
}
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
$text=“你好$person”;
回显$text.“
”; }
$text位于foreach之外,因此$person未被回显

请尝试以下操作:

$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    $text = "Hello $person";
    echo $text."<br/>";
}
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
$text=“你好$person”;
回显$text.“
”; }

$text在foreach之外,因此$person没有得到响应

这应该可以实现

    $persons = array("Mike", "Tom", "Foo");
      foreach ($persons as $person) {
         echo "Hello " . $person . "<br>";
      }
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
回音“你好”。$person.“
”; }
这应该可以实现

    $persons = array("Mike", "Tom", "Foo");
      foreach ($persons as $person) {
         echo "Hello " . $person . "<br>";
      }
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
回音“你好”。$person.“
”; }
要简化此操作,您可以执行以下操作

 $persons = array("Mike", "Tom", "Foo"); 
foreach ($persons as $person)
 { echo "hello".$person."<br>";
 }
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人)
{echo“你好”。$person.“
”; }
或者你会这么做

   $text = "Hello";
    $persons = array("Mike", "Tom", "Foo");
     foreach ($persons as $person) 
    { 
    echo $text." ".$person."<br>"; 
    }
$text=“你好”;
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人)
{ 
回显$text.“$person.”
“; }
要简化此操作,您可以执行以下操作

 $persons = array("Mike", "Tom", "Foo"); 
foreach ($persons as $person)
 { echo "hello".$person."<br>";
 }
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人)
{echo“你好”。$person.“
”; }
或者你会这么做

   $text = "Hello";
    $persons = array("Mike", "Tom", "Foo");
     foreach ($persons as $person) 
    { 
    echo $text." ".$person."<br>"; 
    }
$text=“你好”;
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人)
{ 
回显$text.“$person.”
“; }
让我们有点创意,也许不是最好的,但这只是一句台词

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

注意我的解决方案不被推荐,但与其他人有相同的答案会很无聊。

让我们有点创意,可能不是最好的,但这只是一句话

$persons = array("Mike", "Tom", "Foo");
echo vsprintf(str_repeat("Hello %s<br>", count($persons)), $persons);
请注意不推荐我的解决方案,但与其他人有相同的答案会很无聊

我错过了什么

您正在将
$text
分配给包含
$person
的字符串,但
$person
尚未定义(您应该会收到一条
注意:未定义变量
消息)。您可以像许多其他答案所建议的那样,在循环中定义
$text
。但是您的代码示例可能更熟悉
sprintf

$text = "Hello %s";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    echo sprintf($text, $person) . "<br>";
}
$text=“你好%s”;
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
echo sprintf($text,$person)。“
”; }
将允许您通过向字符串传递参数来格式化字符串

我错过了什么

您正在将
$text
分配给包含
$person
的字符串,但
$person
尚未定义(您应该会收到一条
注意:未定义变量
消息)。您可以像许多其他答案所建议的那样,在循环中定义
$text
。但是您的代码示例可能更熟悉
sprintf

$text = "Hello %s";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
    echo sprintf($text, $person) . "<br>";
}
$text=“你好%s”;
$persons=数组(“Mike”、“Tom”、“Foo”);
foreach($人作为$人){
echo sprintf($text,$person)。“
”; }

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

只需使用foreach附加hello,我的做法非常类似

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

只是使用foreach附加hello,我现在的做法非常相似

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

您可以尝试回显“你好”。$person.
取而代之。无需使用
$text
字符串,感谢您指向正确的方向:sprintf$text=“Hello%s”;循环内部:echo sprintf($text$person);您可以尝试回显“你好”。$person.
取而代之。无需使用
$text
字符串,感谢您指向正确的方向:sprintf$text=“Hello%s”;循环内部:echo sprintf($text$person);的确,这是可行的,但实际变量的定义要广泛得多。确实可行,但实际变量的定义要广泛得多。甚至更漂亮;-)更美;-)