2013-02-20 2 views
-2

OK Я возвращаюсь к PHP после того, как не использовал его в течение нескольких лет, и я пытаюсь выполнить простую проверку переменной $ _POST.Ошибка PHP Parse: синтаксическая ошибка, неожиданное '}'

у меня есть:

if(isset($_POST['partydate'])) { $partydate = $_POST['partydate'] } else { $partydate = "No Date Selected" }; 

Это единственное, что на этой линии, но я получаю следующее, когда запускается страница:

Parse error: syntax error, unexpected '}' in C:\xampp\htdocs....... on line 3 

Что такое, очевидно, очень простая вещь, я с видом здесь ?!

+0

I t hink вы бы оценили условный оператор: '$ partydate = isset ($ _ POST ['partydate'])? $ _POST ['partydate']: «No Date Selected», ' –

+1

@SteAp, ваше редактирование фактически исправляет плохой код, который является точкой вопроса, поэтому ответы больше не имеют смысла. – SirDarius

+0

О, извините. Я действительно добавил два ';' знаки? Должен ли я переписать его, чтобы снова сделать его одним лайнером? – SteAp

ответ

1

Одиночные вкладыши плохо читают код. Если отображается лучше, ваш код становится:

if (isset($_POST['partydate'])) { 
    $partydate = $_POST['partydate'] 
} 
else { 
    $partydate = "No Date Selected" 
} 
; 

Так как вы можете видеть, вам не хватает точки с запятой в ваших, если это и либо еще блоках. Правильный код:

if (isset($_POST['partydate'])) { 
    $partydate = $_POST['partydate']; 
} 
else { 
    $partydate = "No Date Selected"; 
} 
+0

Блестящий !! Я. . Идиот!! Просто пытался сохранить все компактность, поскольку я проверяю около 10 переменных, поэтому не хочу иметь 6 или около того строк для каждой проверки. В процессе заставляют себя выглядеть немного! Будет правильно использовать тернарный оператор, как это предлагает пара других. Спасибо вам всем. –

0

Попробуйте это для размера, при правильном размещении «;»

if(isset($_POST['partydate'])) { 
    $partydate = $_POST['partydate']; 
} else { 
    $partydate = "No Date Selected"; 

} 
+0

Ударьте мне это;) – James

0

У вас есть промах два

;

после назначения строки попробуйте этот код:

if(isset($_POST['partydate'])) { 
     $partydate = $_POST['partydate']; 
} else { 
    $partydate = "No Date Selected"; 
}; 
1

Используйте тройное if, если вы действительно хотите использовать однолинейный:

$partydate = isset($_POST['partydate']) ? $_POST['partydate'] : "No Date Selected"; 
+0

Спасибо. Забыл о тройном операторе. Сделаю это спасибо. Приняли @SirDarius в качестве ответа, хотя он действительно объясняет, что не так с моим исходным кодом. –

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