2

どういうわけか頭を包み込むことができないようです。

$welcome_message = "Hello there $name";

$names_array = array("tom", "dick", "harry");

foreach ($names_array as $this_name) {
    $name = $this_name;
    echo $welcome_message."<br>";
}

$welcome_message内の$name変数を毎回更新するにはどうすればよいですか?

変数変数を使用していますが、機能させることができないようです。

ありがとう

4

3 に答える 3

6

多分あなたは探していsprintfますか?

$welcome_message = "Hello there %s";

$names_array = array("tom", "dick", "harry");

foreach ($names_array as $this_name) {
    echo sprintf($welcome_message, $this_name), "<br>";
}
于 2012-09-22T17:01:29.570 に答える
5

$welcome_messageは最初に一度だけ評価されるため($nameおそらくまだ定義されていない場合) 、これは機能しません。目的のフォームを内部$welcome_messageに「保存」して、後で自由に「拡張」することはできません(を使用しない限りeval、これは完全に回避する必要があります)。

$welcome_message代わりに、ループ内に設定されている行を移動します。

$names_array = array("tom", "dick", "harry");

foreach ($names_array as $this_name) {
    $welcome_message = "Hello there $this_name";
    echo $welcome_message."<br>";
}
于 2012-09-22T17:00:45.530 に答える
3

このように毎回$welcome_messageを更新できます。

$welcome_message = "Hello there ".$name;

これで、コードは次のようになります...

$welcome_message = "Hello there ";

$names_array = array("tom", "dick", "harry");

foreach ($names_array as $this_name) {
echo $welcome_message.$this_name"<br>";
}
于 2012-09-22T17:01:36.763 に答える