Разработчику. Сборник рецептов PHP
Задавайте вопросы

Включение функций и выражений в строки

Вернуться назад

Задача

Вставить результаты выполнения функции или выражения в строку.

Решение

Когда значение, которое необходимо вставить в строку, не может быть в нее включено, следует применять оператор конкатенации строк (.):

print 'You have '.($_REQUEST['boys'] + $_REQUEST['girls']).' children.';
print "The word '$word' is ".strlen($word).' characters long.';
print 'You owe '.$amounts['payment'].' immediately';
print "My circle's diameter is ".$circle->getDiameter().' inches.';

Обсуждение

Можно поместить переменные, свойства объекта и элементы массива (если индекс не в кавычках) непосредственно в строку в двойных кавычках:

print "I have $children children.";
print "You owe $amounts[payment] immediately.";
print "My circle's diameter is $circle->diameter inches.";

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


Для того чтобы все эти функции работали с русскими буквами, необходимо установить в окружении сценария нужную локализацию с помощью функции setlocale().

print <<< END
Right now, the time is
END
. strftime('%c') . <<< END
but tomorrow it will be
END
. strftime('%c',time() + 86400);

Кроме того, если вы производите вставку во встроенный документ, не забудьте добавить пробелы так, чтобы вся строка выглядела правильно. В предыдущем примере строка «Right now the time» должна включать замыкающий пробел, а строка «but tomorrow it will be» должна включать пробелы в начале и в конце.

Вернуться назад

Рейтинг@Mail.ru

Яндекс.Метрика

Индекс цитирования


Рейтинг Сайтов ДОСКИ.РУ