9

So i'm having a bit of a problem with having my PHP run a command if multiple variables exist. I made a simple version for people to see what i'm trying to fix easier. Thanks in advance to anyone who can help :)

<?php
if ((isset($finalusername)) && if (isset($finalpassword)) && if (isset($finalemail)))
  echo "This will save.";
?>
Joe Wicentowski
  • 5,159
  • 16
  • 26
Spencer May
  • 4,266
  • 9
  • 28
  • 48

5 Answers5

23
if (isset($finalusername, $finalpassword, $finalemail))

Also see The Definitive Guide to PHP's isset and empty.

deceze
  • 510,633
  • 85
  • 743
  • 889
  • @alex When something annoys me enough and I have some spare time on my hands. :o) – deceze Jan 25 '12 at 03:51
  • I want everyone to know.....im an idiot lol the variable was finalpass and thats why i was having trouble haha, but thanks everyone your codes were way ebtetr than mine :) – Spencer May Jan 25 '12 at 03:58
  • Can empty() also receive multiple parameters such as isset()? I just want to be sure. By the way, I've read the article. It's comprehensive! Nice one! – Lynnell Neri Mar 07 '16 at 06:20
  • @deceze, thanks. I've just tried and NetBeans gave a syntax error, hehehe. Thanks again! – Lynnell Neri Mar 07 '16 at 08:53
2

You don't need to place the multiple if in there.

if (isset($finalusername) && isset($finalpassword) && isset($finalemail)) {
   // ...
}

In fact, I'd even do it like so...

if (isset($finalusername, $finalpassword, $finalemail)) {
   // ...
}
alex
  • 479,566
  • 201
  • 878
  • 984
  • I want everyone to know.....im an idiot lol the variable was finalpass and thats why i was having trouble haha, but thanks everyone your codes were way ebtetr than mine :) – Spencer May Jan 25 '12 at 03:58
1

If multiple parameters are supplied then isset() will return TRUE only if all of the parameters are set.

So you can do this way:

if (isset($finalusername, $finalpassword, $finalemail)) {
    echo "This will save.";
}
xdazz
  • 158,678
  • 38
  • 247
  • 274
  • I want everyone to know.....im an idiot lol the variable was finalpass and thats why i was having trouble haha, but thanks everyone your codes were way ebtetr than mine :) – Spencer May Jan 25 '12 at 03:57
0

So this might be a good solution for much more than some variables:

  // INTI ARRAY
  $arr_final = array(
    'username'  => !empty($finalusername) ? $finalusername : false,
    'password'  => !empty($finalpassword) ? $finalpassword : false,
    'email'  => !empty($finalemail) ? $finalemail : false,
    'more_stuff'  => !empty($morestuff) ? $morestuff : false,
  );

  $bol_isValid = true;
  $arr_required = array('username','password');
  foreach ($arr_final as $key => $value) {
    if ( (in_array($key, $arr_required)) && ($value === false) ) {
      $bol_isValid = false;
      break;
    }
  }
-3

Try with this:

if (isset($var1))
{
    if (isset($var2))
    {
        // continue for each variables...
    }
}
Frederick Marcoux
  • 2,195
  • 1
  • 26
  • 57