Check out The Definitive Guide To PHP’s
empty() for a deep dive on these faux-function language constructs.
- always develop with error reporting turned to 11 (and fix all real errors)
- always use
issetfor variables that may legitimately not exist
- never use
issetfor variables that should exist
Note: To deal with PHP notices in 3rd-party code, if you can’t contribute fixes upstream you may want to consider using a plugin like Zack Tollman’s Ostrichcize.
it [is] impossible to distinguish between a variable that does not exist and a variable that has the value
null. […] Specifically for arrays, there’s an alternative to
array_key_exists. This function specifically does what it says: it returns
trueif an array key exists, regardless of the value of that key. That makes it possible to detect
nullvalues in arrays
array_key_exists() is used in
WP_Customize_Manager::post_value() for this reason. Since the Customizer’s dirty setting values are encoded as JSON it is possible for a post value to be
wp.customize.Value doesn’t directly facilitate
seting this value).