php echo, если выполняются два условия

Фактический код выглядит так:

if (file_exists($filename)) {echo $player;

} else { 

echo 'something';

но он отображает игрока, даже если id не вызывается из URL-адреса

мне нужно что-то вроде этого:

check if $filename exists and $id it is not empty then echo $player

if else echo something else

я проверяю, не пуст ли $id с помощью

if(empty($id)) echo "text";

но я не знаю, как совместить их обоих

Кто-нибудь может мне помочь?

Спасибо за все ваши примеры кода, но у меня все еще есть проблема:

Как проверить, не является ли $id не пустым, а затем отобразить остальную часть кода


person m3tsys    schedule 08.05.2011    source источник
comment
php.net/manual/en/language.operators.logical.php   -  person deceze♦    schedule 08.05.2011
comment
вы также можете прочитать w3schools.com/php/default.asp, что очень хорошо учебник для начинающих   -  person afarazit    schedule 08.05.2011
comment
@wesley @Pentium10 я только что прочитал все ответы, и они предлагают использовать !empty($id). В чем разница между !empty($id) и $id != ''. Я хотел бы знать, потому что я использую $id != '' в своем коде. Оба кажутся мне одинаковыми, я что-то упустил?   -  person afarazit    schedule 08.05.2011
comment
@atno см. документацию.   -  person lonesomeday    schedule 08.05.2011


Ответы (5)


Просто используйте оператор AND или && для проверки двух условий:

if (file_exists($filename) AND ! empty($id)): // do something

Это фундаментальный PHP. Материал для чтения:

http://php.net/manual/en/language.operators.logical.php

http://www.php.net/manual/en/language.operators.precedence.php

person Wesley Murch    schedule 08.05.2011

Вам понадобится логический AND оператор:

if (file_exists($filename) AND !empty($id)) {
    echo $player;
}
person lonesomeday    schedule 08.05.2011

вам нужно проверить $id вместе с file_exists($filename) следующим образом

if (file_exists($filename) && $id != '') {
echo $player;

} else { 
echo 'something';
}
person afarazit    schedule 08.05.2011

Использование тернарного оператора:

echo (!empty($id)) && file_exists($filename) ? 'OK' : 'not OK';

Использование предложения if-else:

if ( (!empty($id)) && file_exists($filename) ) {
    echo 'OK';
} else {
    echo 'not OK';
}
person Tadeck    schedule 08.05.2011
comment
Нет необходимости во всех этих скобках в ваших примерах. - person Wesley Murch; 08.05.2011
comment
Просто говорю, к вашему сведению. Вы можете добавить столько, сколько хотите, например (((($this)))), и это не имеет значения, это больше подходит для группировки условий, таких как if ((1 + 1 == 2) && (3 + 3 == 6 AND 6 == 6)). Да, плохой пример, но не хотелось, чтобы код флудил в комментарии :) - person Wesley Murch; 08.05.2011
comment
Я знаю. Но иногда добавление дополнительных скобок многое меняет — с точки зрения понимания кода новичками в PHP. Просто хотел убедиться, что вы избегаете вопросов, похожих на !$a && $b равно !($a && $b) или (!$a) && $b? ;) - person Tadeck; 08.05.2011

person    schedule
comment
у меня небольшая проблема: как мне проверить, не пусто ли оно? - person m3tsys; 08.05.2011
comment
@m3tsys !empty($id) переводится, если $id не пуст. это ответ, который вы ищете - person afarazit; 08.05.2011
comment
благодарю вас. у меня были некоторые проблемы с другим кодом, и я думал, что это вызвано этим. - person m3tsys; 08.05.2011