Smarty allows you to access PHP objects through templates. There are two ways to access them. One is to register an object to a template and access it in a form similar to a user-defined function. Another method is to assign an object to the template, and then access the template by accessing other methods similar to the value assignment variable. The first method has a good template syntax and is restricted to several fixed methods and targets as a registration object. This is safer. However, a registered object cannot be repeatedly used and assigned values in its own array. In short, you may choose that method based on your own needs. However, using the first method can minimize the syntax of your companion mode. <Br/> If the security option is activated, no private members or functions can be accessed (starting ). If a member or object with the same name exists, the method is used. <Br/> You can restrict members and functions, but the external solution can access it by listing them as an array of Third-registered variables. <Br/> generally, the method used to pass a parameter to an object through a template is the same as that used to obtain a parameter from a custom function. A Hybrid Array is passed as the first parameter, and the smarty object is the second parameter. If you want to pass a parameter at the same time as a traditional object parameter, set the fourth parameter to false.
<? Php <br/> // The object <br/> class my_object {<br/> function METH1 ($ Params, & $ smarty_obj) {<br/> return "this is my METH1"; <br/>}< br/> $ myobj = new my_object; <br/> // registering the object (will be by reference) <br/> $ smarty-> register_object ("foobar", $ myobj ); <br/> // if we want to restrict access to certain methods or properties, list them <br/> $ smarty-> register_object ("foobar", $ myobj, ar Ray ('meth1 ', 'meth2', 'prop1'); <br/> // if you want to use the traditional object parameter format, pass a Boolean of false <br/> $ smarty-> register_object ("foobar", $ myobj, null, false); <br/> // We can also assign objects. assign by ref when possible. <br/> $ smarty-> assign_by_ref ("myobj", $ myobj); <br/> $ smarty-> display ("index. TPL "); <br/>?> <Br/> template: <br/> {* access our registered object *} <br/> {foobar-> METH1 p1 = "foo" p2 = $ bar} <br/> {* You can also assign the output *} <br/> {foobar-> METH1 p1 = "foo" p2 = $ bar assign = "output"} <br/> the output was {$ output) <br/> {* access our assigned object *} <br/> {$ myobj-> METH1 ("foo", $ bar )}