为什么将PHP函数赋值给变量执行呢?

时间:2016-11-15 16:05:05

标签: php wordpress

我在WordPress中使用它:

<?php if ( !is_front_page()) {

$title = the_title();

echo <<<EOT

<div class="featured-header col-xs-12 col-sm-12 col-md-12 col-lg-12 cf">
<span class="featured-title">$title</span>
</div>

EOT;
} ?>

然而,页面标题是由PHP BEFORE生成的。看起来$ title变量本身的声明正在执行the_title()函数。

为什么会这样?

编辑:

感谢您的解释!这是现在的工作代码:

<?php if ( !is_front_page()) {

$title = get_the_title();
$thumbnail = get_the_post_thumbnail_url();

echo <<<EOT

<div class="featured-header col-xs-12 col-sm-12 col-md-12 col-lg-12 cf"     style="background-image: url('$thumbnail');">
<span class="featured-title animated fadeIn">$title</span>
</div>
EOT;

} ?>

3 个答案:

答案 0 :(得分:0)

the_title()功能已执行,因为您将其称为。返回值存储在$title变量中,之后不会更改。

我不知道这个功能是做什么的。 也许它回应了某些东西并且没有返回 - 然后回显的值将被打印出来,而不是存储在变量中,你就无法做任何事情。

如果它返回,而不是回显,那么你可以这样做:

$heredoc = <<<EOT

  <div class="featured-header col-xs-12 col-sm-12 col-md-12 col-lg-12 cf">
  <span class="featured-title">%t</span>
  </div>

EOT;

$heredoc = sprintf($heredoc, the_title());
echo $heredoc;

答案 1 :(得分:0)

$title = the_title()实际调用该函数,然后分配返回的值,这是正常的,并且是所有编程语言的标准。如果要分配函数本身,则需要指定函数的名称,如下所示:

 $title = 'the_title' 

然后,在你想要调用函数的地方你只需写:

$title()

这将正常调用该函数。

根据经验,你可以说,如果某事后面跟着(),它会被立即调用。

source

答案 2 :(得分:0)

the_title()是一个模板功能,显示echo)标题。如果要将标题存储在var中,请改用get_the_title()

请注意,大多数WP模板函数的工作方式如下:get_the_content() vs the_content()get_the_date() vs the_date() ...