Как включить переменную, которую еще предстоит определить, внутри строки? PHP - PullRequest
2 голосов
/ 02 сентября 2010

Для выполнения меньшего количества запросов к базе данных и для ясности кода я хотел бы включить переменную, которая еще не определена, внутри строки. Позже на странице переменная будет объявлена, а строка напечатана и оценена. Как мне это сделать?

$str="This $variable is delicious";

$array=array("Apple","Pineapple","Strawberry");

foreach($array as $variable)
{
  print "$str";
}

Ответы [ 6 ]

13 голосов
/ 02 сентября 2010

Вы можете использовать printf() (или sprintf(), если вы не хотите его отображать):

$str = 'This %s is delicious';

foreach ($array as $variable) {
    printf($str, $variable);
}
0 голосов
/ 02 сентября 2010

Вы, вероятно, делаете неправильный путь.
Научитесь использовать шаблоны, и вам никогда не понадобятся такие странные вещи.
Просто разделите ваш код на 2 части:

  • получение всей необходимой информации
  • отображение обычной страницы или страницы с ошибкой

вы обнаружите, что весь ваш код стал очень аккуратным и многократно используемым

0 голосов
/ 02 сентября 2010

Я думаю, вам нужна функция php sprintf

http://php.net/manual/en/function.sprintf.php

или это также можно сделать с помощью str_replace

http://in.php.net/manual/en/function.str-replace.php

0 голосов
/ 02 сентября 2010

Почему бы вам просто не сделать:

$array=array("Apple","Pineapple","Strawberry");

foreach($array as $variable) {
    print "This $variable is delicious";
}
0 голосов
/ 02 сентября 2010

Использовать str_replace.

Например:

$str = "This is [VARIABLE] is delicious";
$array = array("Apple", "Pineapple", "Strawberry");

foreach($array as $variable)
{
    print str_replace('[VARIABLE]', $variable, $str);
}
0 голосов
/ 02 сентября 2010
$str='This $variable is delicious'; // so no variable interpolation is performed

$array=array("Apple","Pineapple","Strawberry");

foreach($array as $variable)
{
  // Warning! This is a very bad idea!
  // Using eval or system might create vulnerabilities!
  eval('$str="' . $str . '";');
  print $str;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...