PHP, если существует несколько переменных - PullRequest
8 голосов
/ 25 января 2012

Так что у меня есть небольшая проблема с тем, что мой PHP запускает команду, если существует несколько переменных.Я сделал простую версию, чтобы люди увидели, что я пытаюсь исправить.Заранее спасибо всем, кто может помочь:)

<?php
if ((isset($finalusername)) && if (isset($finalpassword)) && if (isset($finalemail)))
  echo "This will save.";
?>

Ответы [ 5 ]

21 голосов
/ 25 января 2012
if (isset($finalusername, $finalpassword, $finalemail))

Также см. Полное руководство по PHP isset и empty.

2 голосов
/ 25 января 2012

Вам не нужно помещать туда кратное if.

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

На самом деле, я бы даже сделал это так ...

if (isset($finalusername, $finalpassword, $finalemail)) {
   // ...
}
1 голос
/ 25 января 2012

Если задано несколько параметров, то isset () вернет TRUE, только если установлены все параметры.

Таким образом, вы можете сделать это следующим образом:

if (isset($finalusername, $finalpassword, $finalemail)) {
    echo "This will save.";
}
0 голосов
/ 23 августа 2018

Так что это может быть хорошим решением для гораздо большего, чем некоторые переменные:

  // 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;
    }
  }
0 голосов
/ 25 января 2012

Попробуйте с этим:

if (isset($var1))
{
    if (isset($var2))
    {
        // continue for each variables...
    }
}
...