php - вставить переменную в строку эха - PullRequest
29 голосов
/ 08 ноября 2011
$i = 1
echo '
<p class="paragraph$i">
</p>
'
++i

Попытка вставить переменную в отображаемую строку. Приведенный выше код не работает. Как перебрать переменную php в строку эха?

Ответы [ 9 ]

76 голосов
/ 08 ноября 2011

Одинарные кавычки не будут анализировать переменные PHP внутри них.Либо используйте двойные кавычки, либо используйте точку для расширения эха.

$variableName = 'Ralph';
echo 'Hello '.$variableName.'!';

ИЛИ

echo "Hello $variableName!";

И в вашем случае:

$i = 1;
echo '<p class="paragraph'.$i.'"></p>';
++i;

ИЛИ

$i = 1;
echo "<p class='paragraph$i'></p>";
++i;
21 голосов
/ 07 августа 2013

Всегда используйте двойные кавычки при использовании переменной внутри строки и ставьте обратную косую черту в любых других двойных кавычках, кроме начальных и конечных. Вы также можете использовать скобки, как показано ниже, чтобы было проще найти переменные внутри строк и сделать их более чистыми.

$var = 'my variable';
echo "I love ${var}";

или

$var = 'my variable';
echo "I love {$var}";

Выше вернулось бы следующее: я люблю свою переменную

11 голосов
/ 08 ноября 2011

Переменная интерполяция не происходит в одинарных кавычках.Вам нужно использовать двойные кавычки как:

$i = 1
echo "<p class=\"paragraph$i\"></p>";
++i;
7 голосов
/ 08 ноября 2011
echo '<p class="paragrah"' . $i . '">'
7 голосов
/ 08 ноября 2011
echo '<p class="paragraph'.$i.'"></p>'

должен добиться цели.

5 голосов
/ 08 ноября 2011
echo '<p class="paragraph'.$i.'"></p>';
3 голосов
/ 02 сентября 2015

Вот 3 лучших способа сделать это.

Метод первый:

$x = '+3';
echo "1+2$x";

Двойные кавычки (") позволяют просто передавать переменную непосредственно внутри нее.

Метод второй:

$x = '+3';
echo '1+2'.$x;

Если вы не хотите использовать двойные кавычки по какой-либо причине, сделайте это. (.) Просто означает «Добавить» в основном. Поэтому, если вы хотите добавить что-то вроде 1 + 2 + 3 + 4 + 5 и иметь вашу переменную посередине, все, что вам нужно сделать, это:

$x = '+3';
echo '1+2'.$x.'+4+5';

Метод 3: (Добавление переменной непосредственно внутри вызываемой переменной)

$x = '+3';
$y = '+4';
$z = '+5';
echo "1+2${"x".$y.$z}";
Output: 1+2+3+4+5

Здесь мы добавляем $y и $z к $x, используя "."; {} расставить приоритеты это работа внутри него, прежде чем сделать неопределенным переменная.

Это лично очень полезная функция для вызова таких функций, как:

//Add the Get request to a variable.
$x = $_GET['tool'];

//Edit: If you want this if to contain multiple $xresult's change the if's
//Conditon in the "()" to isset($get). Simple. Now just add $xresultprogram
//or whatever.
if($x == 'app') {
    $xresultapp = 'User requested tool: App';
}

//Somewhere down far in HTML maybe...

echo ${"xresult".$x};
//Note: doing ${"xresult".$_GET['tool']} directly wont work.
//I believe this is because since some direct non-echo html was loaded
//before we got to this php section it cant load cause it has already
//Started loading client side HTML and JS.

В результате вы получите $ xresultapp's, инструмент, запрашиваемый пользователем: приложение, если они сделали example.com?tool=app. Вы можете изменить с помощью оператора else, чтобы определить, что происходит, когда запрашивается что-то другое, а не приложение e.t.c. Помните, что все регистрозависимо, поэтому, если они запрашивают приложение в столицах, оно не будет выводить $ xresultapp.

2 голосов
/ 08 ноября 2011

Используйте двойные кавычки:

$i = 1;
echo "
<p class=\"paragraph$i\">
</p>
";
++i;
0 голосов
/ 15 апреля 2013

Вы можете попробовать это

$i = 1
echo '<p class="paragraph'.$i.'"></p>';
++i; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...