diff options
Diffstat (limited to 'vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md')
-rw-r--r-- | vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md b/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md new file mode 100644 index 000000000..2ba3f026b --- /dev/null +++ b/vendor/smarty/smarty/docs/designers/language-variables/language-variable-scopes.md @@ -0,0 +1,61 @@ +Variable scopes {#language.variable.scopes} +=============== + +You have the choice to assign variables to the scope of the main Smarty +object, data objects created with [`createData()`](#api.create.data), +and template objects created with +[`createTemplate()`](#api.create.template). These objects can be +chained. A template sees all the variables of its own object and all +variables assigned to the objects in its chain of parent objects. + +By default templates which are rendered by +[`$smarty->display(...)`](#api.display) or +[`$smarty->fetch(...)`](#api.fetch) calls are automatically linked to +the Smarty object variable scope. + +By assigning variables to individual data or template objects you have +full control which variables can be seen by a template. + + + + // assign variable to Smarty object scope + $smarty->assign('foo','smarty'); + + // assign variables to data object scope + $data = $smarty->createData(); + $data->assign('foo','data'); + $data->assign('bar','bar-data'); + + // assign variables to other data object scope + $data2 = $smarty->createData($data); + $data2->assign('bar','bar-data2'); + + // assign variable to template object scope + $tpl = $smarty->createTemplate('index.tpl'); + $tpl->assign('bar','bar-template'); + + // assign variable to template object scope with link to Smarty object + $tpl2 = $smarty->createTemplate('index.tpl',$smarty); + $tpl2->assign('bar','bar-template2'); + + // This display() does see $foo='smarty' from the $smarty object + $smarty->display('index.tpl'); + + // This display() does see $foo='data' and $bar='bar-data' from the data object $data + $smarty->display('index.tpl',$data); + + // This display() does see $foo='data' from the data object $data + // and $bar='bar-data2' from the data object $data2 + $smarty->display('index.tpl',$data2); + + // This display() does see $bar='bar-template' from the template object $tpl + $tpl->display(); // or $smarty->display($tpl); + + // This display() does see $bar='bar-template2' from the template object $tpl2 + // and $foo='smarty' form the Smarty object $foo + $tpl2->display(); // or $smarty->display($tpl2); + + + +See also [`assign()`](#api.assign), [`createData()`](#api.create.data) +and [`createTemplate()`](#api.create.template). |