2009-04-20 2 views
5

Когда я пишу, если заявление, у меня есть это проверить переменную следующим образом:Проверка Если Затем заявления в PHP

if(isset($_GET['username']){ 
echo "set"; 
} else { 
echo "unset"; 
} 

Как я мог бы получить мой если заявление, чтобы проверить, если две переменные установлены похожа на это:

if(isset($_GET['username'] & $_GET['firstname'])){ 
echo "set"; 
} else { 
echo "unset"; 
} 

Итак, как я могу проверить две вещи в инструкции if сразу?

+2

Почему downvotes? Хотя это довольно простой вопрос, но людям нужно что-то изучать, и это так же хорошо, как и все. Конечно, это может не помешать получить вводную книгу программирования, но будьте добры к noobs. –

ответ

0
if (isset($_GET['username']) AND isset($_GET['firstname'])) 
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
} 
11

Заканчивать Руководство по PHP на control structures и logical operators:

if(isset($_GET['username']) && isset($_GET['firstname'])) { 
    echo "set"; 
} else { 
    echo "unset"; 
} 

Использование одного & делает bitwise operation, который, безусловно, не то, что вы хотите.

and также является синонимом синтаксиса &&, как показали другие ответы.

EDIT: Как указано в комментариях, вы можете проверить, являются ли две переменные isset, передавая их как функции isset. Однако, если вы когда-либо хотели выполнить какую-то другую операцию, вам нужно будет сделать логические операторы выше.

+0

Посмотрите на ответ Ника Престы. – nickf

+0

Я отвечал на общий вопрос: «Так в основном, как я могу проверить две вещи в инструкции if сразу?» но я думаю, что я отредактирую свой ответ, чтобы включить это ... –

0
if (isset($_GET['username']) && isset($_GET['firstname'])) 
{ 
    echo "set"; 
} 
else 
{ 
    echo "unset"; 
} 

Для справки: PHP's operators

+0

Это правда? Я так не думаю. если это так, это еще один уродливый php-hack снова ... "($ _GET [] && $ _GET [])" оценивается как логическое значение. переменные могут быть установлены или нет, значения просто ... есть. – stefs

+0

Вам не хватает апострофа после 'username'. Кроме того, это недопустимый код. –

+0

Исправлен код, который я изначально имел в виду. Я скопировал код вопроса, изменив их использование & (неправильный оператор) для &&, не проверив остальную часть. – Rob

1

Попробуйте с помощью оператора & & (логическое и), а не & (двоичный и)

так что если Исеть возвращает истину для обоих тогда, если возвращается истинные иначе если вернет false.

2
if (isset($_GET['username']) && isset($_GET['firstname'])) 
1

да, или

эхо ((Исеть ($ _ GET [ 'имя пользователя']) & & Исеть ($ _ GET [ 'Firstname'])) "набор": "отключено");

+0

Мне нравится что-то подобное. –

7
if (isset($_GET['username'], $_GET['firstname'])) { 
    echo 'Set!'; 
} 

isset принимает несколько аргументов, и если несколько параметров поставляются затем Исеть() возвращает TRUE, только если все параметры установлены. Оценка идет слева направо и останавливается, как только встречается неустановленная переменная.

+0

Да, я собирался сказать это сам. Я не могу поверить всем остальным ответам, которые не подобрали этого ... – nickf

Смежные вопросы