php - How does empty() work with a boolean expression? -
a guy learning php sent me code has me scratching head. he's getting $_post input, putting in variables, , then:
if( !empty($id && $name && $email) ) { //do } my first inclination passing multiple variables argument throw error, evaluates successfully. incorrect empty() should not take boolean expression? or - if i'm right - why work?
you can pass expression empty rather variable (since php 5.5), expression lose half of benefit of using empty. empty checks variables set evaluating "truthiness". when give expression that, individual variables within expression not checked exist empty. expression evaluated boolean.
so if used separate empty checks, check variables exist check != false
if(!empty($id) && !empty($name) && !empty($email)) but when use
if (!empty($id && $name && $email)) you still if block if variables set , have non-false values, you'll undefined variable notices if of them not set. it's same thing not using empty @ all, this:
if ($id && $name && $email) but if guy setting these variables $_post, will set, (if weren't in $_post he'd undefined index warnings @ point) , empty here pointless anyway.
Comments
Post a Comment