Проблема заключается в том, что isset()
не является реальной функцией, а конструкцией языка, которая требует, чтобы ее аргументы были переменными, или выдает синтаксическую ошибку.
Смотрите также ручной ввод: http://php.net/manual/en/function.isset.php
Во всяком случае, так же как и @deceze сказал, вы, вероятно, не хотите использовать isset()
здесь, так как он используется, чтобы проверить, если переменная существует.
В этом случае, вы можете использовать empty()
, поэтому вместо того, чтобы писать
$openMonday = rtrim(chunk_split($result['opening_hours']['periods'][1]['open']['time'], 2, ':'), ':');
$business->openingTimes['monday'] = isset($openMonday) ? $result['opening_hours']['periods'][1]['open']['time'] : '';
вы могли бы сделать
$openMonday = rtrim(chunk_split($result['opening_hours']['periods'][1]['open']['time'], 2, ':'), ':');
$business->openingTimes['monday'] = !empty($openMonday) ? $result['opening_hours']['periods'][1]['open']['time'] : '';
И вы не должны беспокоиться, чтобы сделать это один вкладыш любой ценой! Создание функции вместо этого, а затем вызвать его, когда это необходимо ... Но если вы действительно все еще хотите сделать это рядный, то вы могли бы сделать
$business->openingTimes['monday'] = !empty(rtrim(chunk_split($result['opening_hours']['periods'][1]['open']['time'], 2, ':'), ':')) ? $result['opening_hours']['periods'][1]['open']['time'] : '';
просто помните, что выше, требует, по крайней мере PHP 5.5!
И, наконец, строка выше, может просто быть записана как
$business->openingTimes['monday'] = !rtrim(chunk_split($result['opening_hours']['periods'][1]['open']['time'], 2, ':'), ':') ? $result['opening_hours']['periods'][1]['open']['time'] : '';
без необходимости isset()
ни empty()
Если вам нужно сделать то же самое для всех других часов работы, вы должны попытаться сделать его функцией! Чтобы вы могли написать его в двух строках и быть более кратким, когда вы это называете. – fluminis