Если вам нужно многократно использовать один и тот же код, причем в различных скриптах (шаблонах, дескрипторах и т.д.), то можно создавать функции. Работа с пользовательскими функциями производится обычным для PHP образом. Однако нужно сделать одно важное замечание:
Если двум блокам на одной странице назначить один и тот же шаблон с определенной внутри функцией, то это вызовет ошибку, так как в PHP нельзя функцию определять дважды. Ошибка произойдет даже при попытке примерить шаблон какому-либо блоку во время процедуры назначения шаблона.
Поэтому, чтобы застраховаться от подобных случаев, лучше помещать коды определения функций в отдельные файлы, которые затем подключать в шаблонах с помощью стандартных конструкций require_once или include_once.
Рекомендуем помещать коды определения всех функций, используемых в шаблоне, в один файл (в папке templates) с именем, совпадающим с именем соответствующего шаблона. Расширение – произвольное, лучше, php. Пример:
<?php
require_once 'news.php';
. . .
$dat2 = treatData($dat);
. . .
echo getImage();
. . .
?>
<?php
function treatData($dat)
{
. . .
}
function getImage()
{
. . .
}
?>
<?php
$treatData function($dat)
{
. . .
};
$getImage function()
{
. . .
};
. . .
$dat2 = $treatData($dat);
. . .
echo $getImage();
. . .
?>
Если вы определяете функцию в пределах одного скрипта, то лучше пользоваться анонимными функциями.
В этом случае определение функции не нужно выносить в отдельный файл.
Обратите внимание на выделенный символ ';' после определения анонимных функций.