这里的问题是它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()