Я в настоящее время пишу вид менеджера загрузок, и я спрашивал меня, если это было возможно:
if($ext == ('zip' || 'png')) { echo "Is it possible ?" }
Это возвращает true каждый раз, таким образом, я предполагаю, что это не возможно. Но у Вас есть идея о том, как я мог легко сделать это? Я имею в виду, не с большим количеством из "если" или "переключатель"...
Спасибо так или иначе!:)
Вы можете использовать In_Array ($ Ext, Array ('png', 'zip', 'your', 'Подробнее'))
Смотрите здесь: http : //php.net/manual/en/function.in-array.php
спросил не так давно. Мой ответ с шаблоном попробовать / ловить
-121--2175916- Если ($ Ext == ('zip' || 'png'))
осуществляется сравнение в следующем порядке -> («Zip '||» PNG ')
, который потому, что, по крайней мере, один не нулевой, возвращает true. Замените, что в настоящее время ($ Ext == True)
, который я собираюсь выйти на конечность и угадайте, что PHP просто оценивает это так же, как это будет ($ EXT)
, который также правда.
Если ($ EXT == 'ZIP' || $ EXT == 'PNG')
проверит то, что вы ищете.
Можно воспользоваться оператором 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;
}
Это определенно возможно, но что вы делаете, есть неверный код. Вот что вы написали:
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')
if(($ext == 'zip') || ($ext == 'png')) { echo "It's possible." }
Можно использовать регулярные выражения, например,
if(preg_match("/^(zip|png)$/", $ext) { echo “It is possible!” }
Связанный вопрос: Проверка расширения файлов в PHP регулярными выражениями
Крошечные рекомендации: 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 и перечисления .
На начало разработки вопроса о производительности не нужно беспокоить вас, потому что он имеет решающее значение для записи кода, который легко читает и развивается / оптимизировать в будущем.
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 ?"
}
Массив может храниться где-либо,