[wp-hackers] How do filters access variables outside of their function?
Andrew Nacin
wp at andrewnacin.com
Fri Aug 27 21:57:13 UTC 2010
On Fri, Aug 27, 2010 at 5:44 PM, Ken <Ken at adcstudio.com> wrote:
> Is there better Example code out there? I'd rather do it cleaner then @
> suppression...
The proper way to check for whether indices are set would be the use
isset(), empty(), or array_key_exists(). Here's a breakdown of when to use
which. I personally use empty() more than I use isset(), and only use
array_key_exists() for the rare use case.
Use isset() when you need to know that the index is set, regardless of its
value.
- Examples: $_GET['number'] = true; $_GET['number'] = false; In both
cases, isset($_GET['number']) is true.
- Use case: When you need to check simply for the index, and not its
value.
Use empty() when you need to know that the index is set and evaluates to
true. Generally I use !empty() as it complements isset().
- Example: $_GET['number'] = true; empty($_GET['number']) is false.
- Example: $_GET['number'] = false; empty($_GET['number']) is true.
- Example: $_GET['number'] is not set; empty($_GET['number']) is true.
- Good use case: Checkboxes only submit data when checked. This works
perfectly: $was_box_checked = !empty($_GET['checkbox']);
Only use array_key_exists() for a specific use case, an exception to how
isset() works with null values.
- Problem: isset($array['number']) returns false, if $array['number'] is
'set' but its value is NULL.
- Solution: array_key_exists( 'number', $array ).
More information about the wp-hackers
mailing list