Поскольку описание зависит от входных данных, поместите его в собственную функцию или класс для его инкапсуляции:
/**
* build a description based on various input variables
* @return string
*/
function build_description($description, $name, $category, array location, $phone) {
// build the description as you see fit.
}
$description = build_description(compact('description', 'name', 'category'));
$metaDescription = sprintf('<meta name="description" content="%s"', htmlspecialchars($description));
, что сделано, конкретная реализация в build_description
может содержатьмного сложных операторов, в то время как остальная часть программы может справиться с этим, как если бы это было что-то простое.
Однако это не дает ответа на то, как вы могли бы закодировать это внутри этой функции.Но так как данные вывода этой функции сильно зависят от ввода этой функции, вы можете иметь дело только со всеми аспектами, которые навязывают аргументы.