Попробуйте это:
if(!empty($_FILES['chat_upload_file']) && !empty($text_messege)){
//both
}else if(!empty($_FILES['chat_upload_file'])){
//file only
}else if(!empty($text_messege)){
//message only
}else{
//nither
}
Я бы, вероятно, использовал empty
вместо того, чтобы просто проверять, является ли оно истинным или ложным.Пустой будет охватывать неопределенные проблемы индекса, которые могут у вас возникнуть.Без дальнейших действий у меня нет возможности узнать, возможно ли это.Например, у меня нет идеи, откуда взято $message
, и если оно всегда считается "установленным" (или не определено).
Вы можете оптимизировать это, выполнив что-то вроде этого.
$file = !empty($_FILES['chat_upload_file']) ? $_FILES['chat_upload_file'] : false;
$text_messege = !empty($text_messege) ? $text_messege : false;
if($file && $text_messege){
//both
}else if($file){
//file only
}else if($text_messege){
//message only
}else{
//nither
}
Таким образом, вы проверяете только пустой 2x вместо 4x.
Оригинал и проблемы
условие, которое я хочу реализовать, заключается в следующем: когда пользователь отправляет и файл, и текстовое сообщение, он возвращает ошибку.
Вы должны (или должны) рассмотреть 4 варианта (2 ^ 2), что каждая переменная может иметь 2 состояния, хорошо вызывать их и выключать
File | Message
on on
on off
off on
off off
В вашем оригинале вы рассматриваете только2 из них
File | Message
on on
on off
Потому что:
if($_FILES['chat_upload_file']){
if($text_messege){
//file: on message: on
}else{
//file: on message: off
}
}
Не учитывает, что происходит, если файл не передан.И если отправка файла и сообщения является ошибкой, то все должно быть в порядке, если вы отправляете только сообщение, а не файл.В противном случае вы никогда не сможете отправить сообщение (вы не можете отправить файл и вы не можете отправить его без).Может быть, есть вещи под этим?Но я не знаю, как это сделать.
Нет смысла добавлять еще один к внешнему IF, потому что вы, вероятно, будете дублировать вещи.
if($_FILES['chat_upload_file']){
if($text_messege){
//file: on message: on
}else{
//file: on message: off
}
}else{
if($text_messege){
//file: off message: on
}else{
//file: off message: off
}
}
И этоУ чище есть 1 блок управления с 4 условиями, затем 3 блока управления с 6 условиями.
Это подразумевается тем, что вы хотите сделать:
- хорошо иметь толькоfile
- хорошо иметь только сообщение (ты не считаешь его)
- не хорошо иметь и файл, и сообщение
- , кто не знает ни того, ни другого (ты не считаешь это)
надеюсь, что это имеет смысл.