我有此代码PHP显示在一个变量(字符串)的可变
$text = "Hello $person";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
echo $text."<br>";
}
的目标是显示:
Hello Mike<br>
Hello Tom<br>
Hello Foo<br>
我想过使用{}和$$,但没有按似乎没有问题。 我错过了什么?
我有此代码PHP显示在一个变量(字符串)的可变
$text = "Hello $person";
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
echo $text."<br>";
}
的目标是显示:
Hello Mike<br>
Hello Tom<br>
Hello Foo<br>
我想过使用{}和$$,但没有按似乎没有问题。 我错过了什么?
我错过了什么?
你分配$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()
将允许您将参数传递给它来格式化字符串。
试试这个:
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
$text = "Hello $person";
echo $text."<br/>";
}
$文本之外的foreach,因为这个原因$人并没有附和
这应该实现它。
$persons = array("Mike", "Tom", "Foo");
foreach ($persons as $person) {
echo "Hello " . $person . "<br>";
}
确实可行,但真正的变量被定义得更加广泛。 – AstrAir
为了使这个简单,你可以做
$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>";
}
让是一个小创意,可能不是最好的,但它是一个衬垫。
$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>";
注意来实现,但它是无聊具有相同的答案其他人。
更美丽;-) – AstrAir
只需使用foreach添加hello我的做法是非常相似!
$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
你可以只尝试'回声 “你好” $人 “”;'代替。不需要'$ text'字符串,然后 – Henders
感谢您指向正确的方向:sprintf – AstrAir
$ text =“Hello%s”; 循环内: echo sprintf($ text,$ person); – AstrAir