<?php
echo "<a href=$url[0]>...</a>";
?>
Хорошо. Как добавить значение массива в пунктирном месте? Я хочу показать '0' как имя URL-адреса, которое не является фиксированным. Спасибо заранее.
<?php
echo "<a href=$url[0]>...</a>";
?>
Хорошо. Как добавить значение массива в пунктирном месте? Я хочу показать '0' как имя URL-адреса, которое не является фиксированным. Спасибо заранее.
Просто распечатайте их -
echo "<a href='" . $url[0] . "'>" . $url[0] . "</a>";
или
echo "<a href='$url[0]'>$url[0]</a>";
"Оптимизации", приведенные здесь, несколько неверны.
Посмотрим на следующий код:
<?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
Итак, вопрос оптимизации становится не таким простым. Если у вас много переменных внутри вашей строки, то, во всяком случае, используйте двойные кавычки, если только один раз, когда появляется переменная, и она появляется в начале или в конце, используйте одинарные кавычки + конкатенацию или одинарные кавычки + последовательный вывод.