Revision 148 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
# Variable scopesYou have the choice to assign variables to the scope of the main Smartyobject, data objects created with [`createData()`](../../programmers/api-functions/api-create-data.md),and template objects created with[`createTemplate()`](../../programmers/api-functions/api-create-template.md). These objects can bechained. A template sees all the variables of its own object and allvariables assigned to the objects in its chain of parent objects.By default, templates which are rendered by[`$smarty->display(...)`](../../programmers/api-functions/api-display.md) or[`$smarty->fetch(...)`](../../programmers/api-functions/api-fetch.md) calls are automatically linked tothe Smarty object variable scope.By assigning variables to individual data or template objects you havefull control which variables can be seen by a template.```php<?php// 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()`](../../programmers/api-functions/api-assign.md),[`createData()`](../../programmers/api-functions/api-create-data.md)and [`createTemplate()`](../../programmers/api-functions/api-create-template.md).