NOTE: This article is 3 years or older so its information may no longer be relevant. Read on at your own discretion! Comments for this article have automatically been locked, refer to the FAQ
for more details.
I've come across a requirement in some of my Smarty
templates to check if a value of a variable appears in an array. The PHP in_array
function does this for you and according to the Smarty documentation
any PHP function can be used as a variable modifier so this should be very easy to implement.
Variable modifiers can be applied to variables, custom functions or strings. To apply a modifier, specify the value followed by a | (pipe) and the modifier name. A modifier may accept additional parameters that affect its behavior. These parameters follow the modifer name and are separated by a : (colon). Also, all php-functions can be used as modifiers implicitly (more below) and modifiers can be combined. .
So lets say my variable is named $my_fruit
and I want to check if the value is in this array: ['apples', 'oranges', 'peaches', 'dragonfruit']
. This is what it would look like in Smarty
The syntax can be a little confusing. The variable is specified first, followed by the pipe character, then the in_array
function. A colon is used to specify an input parameter to the in_array
function, which happens to be the array of fruit from above.
A quick disclaimer...
Although I put in a great effort into researching all the topics I cover, mistakes can happen.
If you spot something out of place, please do let me know.
All content and opinions expressed on this Blog are my own and do not represent the opinions of my employer (Oracle).
Use of any information contained in this blog post/article is subject to this disclaimer
Other posts you may like...