在最后的else语句中,我无法获取该字符串来读出所需的内容。我希望{$ start}读取if语句中设置的开始位置。
我尝试了{$ start},。$ start,%d。
if ( $time < $start ) {
$time_until_opens = ( $start->getTimestamp() - $time->getTimestamp() ) / 60;
if ( $time_until_opens <= 5 ) {
$this->message = __( 'Happy Hour Starts Soon', 'my-listing' );
$this->status = 'Happy Hour Soon';
return true;
} elseif ( $time_until_opens <= 30 ) {
$this->message = sprintf( __( 'Happy Hour In %d Minutes', 'my-listing' ), ( round( $time_until_opens / 5 ) * 5 ) );
$this->status = 'opening';
return true;
} else {
$this->status = 'closed';
$this->message = __( 'Happy Hour At {$start}', 'my-listing' );
}
}
$ start设置为4:00 PM。它不显示4:00 PM。它显示{$ start}。
答案 0 :(得分:1)
代码上的问题是您没有正确使用__()函数。要解决此问题,您应该改用sprintf并绑定要放置在字符串上的变量。
$this->message = sprintf(__('Happy Hour At %s', 'my-listing'), $start);
%s将被$ start字符串替换。请注意,$ start必须是一个字符串,否则它将不会按您期望的那样打印。
问候, 马特
答案 1 :(得分:0)
您需要使用双qoutes而不是单个qoute来读取变量。 例如
“在$$ start的欢乐时光”更改为“在$ start的欢乐时光”。