This meta-template helps other templates, such as infoboxes, to take image size parameters in both of the forms "40" or "40px". It takes up to three parameters and returns the first one that has any content. That is, the first one that is defined (not null) and not empty. Thus a default value for the width of the image can be fed as the second or third parameter.
It used to be a bit tricky to handle empty but defined image size values in a template, since the MediaWiki pipetrick doesn't return the default value for empty parameters. That is, {{{width|250px}}} does not return "250px" if the template was called like this: {{template|width=}}
The usual workaround was to do like this:
{{#if:{{{width|}}}|{{{width}}}|250px}}
When at the same time handling the "pxpx" bug this became even more messy code:
To simplify the coding, {{px}} allows for an optional default value to be defined allowing for the following:
[[Image:{{{image}}} | {{px|{{{width|}}}|250}} ]]
Note! The parameters to {{px}} must use the pipe "|", like this: {{{width|}}}. Or else {{px}} will be fed and return the string "{{{width}}}" if width was not defined.
But since 25 March2008 that does not work anymore. That is, image sizes on Wikipedia now needs to be given in the form "40px", not "40" or "40pxpx". This template helps doing that. Note that the bug has since been fixed, although you can continue using this template.
Currently fails. But the devs have stated that they are adding back parsing of "pxpx" in the next update to Wikipedia. So if you see a small image to the right then Wikipedia again accepts "pxpx".