Как добавить переменную php в url name; не в ссылке URL

<?php
echo "<a href=$url[0]>...</a>";
?>

Хорошо. Как добавить значение массива в пунктирном месте? Я хочу показать '0' как имя URL-адреса, которое не является фиксированным. Спасибо заранее.

Ответ 1

Просто распечатайте их -

echo "<a href='" . $url[0] . "'>" . $url[0] . "</a>";

или

echo "<a href='$url[0]'>$url[0]</a>";

Ответ 2

"Оптимизации", приведенные здесь, несколько неверны.

Посмотрим на следующий код:

<?php
$var = 'a';
$runs = 1000000;

ob_start();
$double = microtime(true);
for($i=0; $i<$runs; $i++)
{
        echo "string{$var}string{$var}string{$var}string{$var}";
}
$double = microtime(true) - $double;

$singleConcat = microtime(true);
for($i=0; $i<$runs; $i++)
{
        echo 'string'.$var.'string'.$var.'string'.$var.'string'.$var;
}
$singleConcat = microtime(true) - $singleConcat;

$singleSequence = microtime(true);
for($i=0; $i<$runs; $i++)
{
        echo 'string', $var, 'string', $var, 'string', $var, 'string', $var;
}
$singleSequence = microtime(true) - $singleSequence;
ob_clean();
?>
<p>Double quotes: <?php echo $double; ?></p>
<p>Single quotes concatenated: <?php echo $singleConcat; ?></p>
<p>Single quotes sequenced: <?php echo $singleSequence; ?></p>

Мои результаты:

Double quotes: 0.26701784133911

Single quotes concatenated: 0.2887818813324

Single quotes sequenced: 0.32703709602356

Теперь это немного странно, почему бы так? Это особенно странно, поскольку общая мудрость заключается в том, что одинарные кавычки быстрее.

Причиной этого является то, что PHP вынужден создавать тонны анонимных объектов.

Код 'string'.$var.'string'.$var.'string'.$var.'string'.$var означает не означает "взять все эти строки и объединить их вместе", скорее это означает "взять первую строку и связать ее со вторым, затем взять результат и объединить это третье и т.д.".

Это заставляет PHP делать больше работы в этом процессе.

<?php
$var = 'a';
$runs = 1000000;

ob_start();
$double = microtime(true);
for($i=0; $i<$runs; $i++)
{
        echo "string{$var}";
}
$double = microtime(true) - $double;

$singleConcat = microtime(true);
for($i=0; $i<$runs; $i++)
{
        echo 'string'.$var;
}
$singleConcat = microtime(true) - $singleConcat;

$singleSequence = microtime(true);
for($i=0; $i<$runs; $i++)
{
        echo 'string', $var;
}
$singleSequence = microtime(true) - $singleSequence;
ob_clean();
?>
<p>Double quotes: <?php echo $double; ?></p>
<p>Single quotes concatenated: <?php echo $singleConcat; ?></p>
<p>Single quotes sequenced: <?php echo $singleSequence; ?></p>

И теперь результаты ожидаются:

Double quotes: 0.10352993011475

Single quotes concatenated: 0.085345029830933

Single quotes sequenced: 0.088818073272705

Итак, вопрос оптимизации становится не таким простым. Если у вас много переменных внутри вашей строки, то, во всяком случае, используйте двойные кавычки, если только один раз, когда появляется переменная, и она появляется в начале или в конце, используйте одинарные кавычки + конкатенацию или одинарные кавычки + последовательный вывод.