2016-05-21 3 views
2

Тем не менее изучение PHP и т.д. ... им получает сообщение об ошибке на следующем:PHP условие массива не работает

'payment_status' => ('P' == $order_info['status'] || 'C' == $order_info['status'] || 'O' == $order_info['status']) ? 'paid' : 'paid' : 'unpaid', 

который из части моего массива, но дает ошибку в этой строке ...

Первая попытка такого рода состояния в массиве таким образом, скорее всего, будет из мели, но в случае, если не знаю, что я целился ...

если order_info статус = P, чтобы установить платный

если order_info статус = C, чтобы установить платный

если order_info статус = O, чтобы установить неоплаченных

Есть идеи?

+2

Проблема в этом случае было очевидно, но не забудьте упомянуть сообщение об ошибке, которое вы получите: это полезно. Действительно :) – Arcesilas

ответ

5

Проблема в том, что у вас слишком много : 'paid' s.

Изменить конец этого:

? 'paid' : 'unpaid'

Вы также можете сделать это немного более удобным для чтения:

$paid_statuses = array('P', 'C'); // O is unpaid 
... 
'payment_status' => (in_array($order_info['status'], $paid_statuses) ? 'paid' : 'unpaid')` 
+1

Отвечал в то же время ... :) – Arcesilas

+0

Спасибо за помощь, так что-то вроде этого будет работать? http://pastebin.com/CfknYYCd – James

+0

Выглядит хорошо для меня – rjdown

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