если ($ext == ('архивируют' || 'png')) {эхо “Действительно ли это возможно?”}

Я в настоящее время пишу вид менеджера загрузок, и я спрашивал меня, если это было возможно:

if($ext == ('zip' || 'png')) { echo "Is it possible ?" }

Это возвращает true каждый раз, таким образом, я предполагаю, что это не возможно. Но у Вас есть идея о том, как я мог легко сделать это? Я имею в виду, не с большим количеством из "если" или "переключатель"...

Спасибо так или иначе!:)

8
задан Minishlink 24 January 2010 в 16:10
поделиться

8 ответов

Вы можете использовать In_Array ($ Ext, Array ('png', 'zip', 'your', 'Подробнее'))

Смотрите здесь: http : //php.net/manual/en/function.in-array.php

22
ответ дан 5 December 2019 в 04:35
поделиться

спросил не так давно. Мой ответ с шаблоном попробовать / ловить

-121--2175916-

Если ($ Ext == ('zip' || 'png')) осуществляется сравнение в следующем порядке -> («Zip '||» PNG ') , который потому, что, по крайней мере, один не нулевой, возвращает true. Замените, что в настоящее время ($ Ext == True) , который я собираюсь выйти на конечность и угадайте, что PHP просто оценивает это так же, как это будет ($ EXT) , который также правда.

Если ($ EXT == 'ZIP' || $ EXT == 'PNG') проверит то, что вы ищете.

11
ответ дан 5 December 2019 в 04:35
поделиться

Можно воспользоваться оператором switch-case:

switch($ext)
{ 
  case 'png':
  case 'zip':
       // Will run for both 'png' and 'zip'
       echo "It is possible";
       break;
  default:
       echo "unknown extension!";
       break;
 }
5
ответ дан 5 December 2019 в 04:35
поделиться

Это определенно возможно, но что вы делаете, есть неверный код. Вот что вы написали:

if($ext == ('zip' || 'png')) { echo "Is it possible ?" }

и вот что, что, что переводит в PHP:

if( (if $ext evaluates to true then return true) == ( if 'zip' evaluates to true then return true || if 'png' evaluates to true then return true ) )

так, так как «zip» не является одним из «пустых» или «ложных» значений, определенных в PHP, и не является « PNG «Вы в основном бегаете это, если утверждение:

if($ext == true)

, который, если он не пуст, он делает.

То, что вы хотите, - как упоминалось ранее:

if($ext == 'zip' || $ext == 'png')
2
ответ дан 5 December 2019 в 04:35
поделиться
if(($ext == 'zip') || ($ext == 'png')) { echo "It's possible." }
3
ответ дан 5 December 2019 в 04:35
поделиться

Можно использовать регулярные выражения, например,

if(preg_match("/^(zip|png)$/", $ext) { echo “It is possible!” }

Связанный вопрос: Проверка расширения файлов в PHP регулярными выражениями

3
ответ дан 5 December 2019 в 04:35
поделиться

Крошечные рекомендации: PHP использует аналогичное обращение с Boolean типа в том смысле, что на самом деле любое ненулевое значение считается «истинным» в случае проживания в условной части IF- Отказ Например, если вы пропустите символ «=» в сравнении конструкции и типа , если ($ var = "val") вместо , если ($ var == "val") Вы будете Всегда получайте истинное значение в этом операторе, потому что оператор '=' вернется в результате значения набора-операции из правой части «val», который по очереди преобразован в «True». Так что лучше написать буквальный в левой части сравнения условия , если («Val» == $ var) Причина в этом обстоятельстве вы получите ошибку, если вы потеряете один «=» символ в « == 'Сравнить.

Так что ваше заявление о том, чтобы выглядеть так: Если ('zip' == $ Ext || 'png' == $ Ext) {echo "Возможно ли?" }

также, вероятно, было бы лучше поставить литералы «zip» и «PNG» в константах с именами file_type_zip, file_type_png или определить некоторую перечислителю, как глобальный PHP-массив, который находится в верхней части вашей исходной страницы или, вероятно, Даже создайте несколько отдельных поддерживаемых классовFileTypes во внешнем файле, который подчеркнул бы поддерживаемые типы файлов вашей программы (в этом случае проверьте PHP и перечисления .

На начало разработки вопроса о производительности не нужно беспокоить вас, потому что он имеет решающее значение для записи кода, который легко читает и развивается / оптимизировать в будущем.

2
ответ дан 5 December 2019 в 04:35
поделиться
if(($ext == 'zip') || ($ext == 'png')) { echo "It's possible." }
-121--3429453-

можно использовать in _ array ($ ext, массив ('png', 'zip', 'другой', 'more'))

см. здесь: http://php.net/manual/en/function.in-array.php

-121--3429449-
if (in_array($ext, array('png', 'zip'))) {
    echo "Is it possible ?"
}

Массив может храниться где-либо,

1
ответ дан 5 December 2019 в 04:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: