Chapter 7. Built-in Functions

Table of Contents


Smarty comes with several built-in functions. These built-in functions are the integral part of the smarty template engine. They are compiled into corresponding inline PHP code for maximum performance.

You cannot create your own custom functions with the same name; and you should not need to modify the built-in functions.

A few of these functions have an assign attribute which collects the result the function to a named template variable instead of being output; much like the {assign} function.


This is a short-hand version of the {assign} function. You can assign values directly to the template, or assign values to array elements too.


Assignment of variables in-template is essentially placing application logic into the presentation that may be better handled in PHP. Use at your own discretion.

The following attributes can be added to the tag:


Attribute Name Shorthand Type Required Default Description
scope n/a string No n/a The scope of the assigned variable: 'parent','root' or 'global'

Option Flags:

Name Description
nocache Assingns the variable with the 'nocache' attribute

Example 7.1. Simple assignment


The value of $name is {$name}.


The above example will output:

The value of $name is Bob.


Example 7.2. Assignment with math



Example 7.3. Assignment of an array element



Example 7.4. Assignment of an multidimensional array element



Example 7.5. Appending an array



Example 7.6. Assigment in the scope of calling template

Variables assigned in the included template will be seen in the including template.

{include file="sub_template.tpl"}
{* display variable assigned in sub_template *}


The template above includes the example sub_template.tpl below

{* foo will be known also in the including template *}
{$foo="something" scope=parent}
{* bar is assigned only local in the including template *}

See also {assign} and {append}