当变量在“ if”语句中时,如何向字符串添加变量?

时间:2019-04-22 23:35:04

标签: php if-statement

在最后的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}。

2 个答案:

答案 0 :(得分:1)

代码上的问题是您没有正确使用__()函数。要解决此问题,您应该改用sprintf并绑定要放置在字符串上的变量。

$this->message = sprintf(__('Happy Hour At %s', 'my-listing'), $start);

%s将被$ start字符串替换。请注意,$ start必须是一个字符串,否则它将不会按您期望的那样打印。

问候, 马特

答案 1 :(得分:0)

您需要使用双qoutes而不是单个qoute来读取变量。 例如

“在$$ start的欢乐时光”更改为“在$ start的欢乐时光”。