2016-11-15 132 views
0

我在WordPress使用這個:爲什麼將一個PHP函數分配給一個變量執行它?

<?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股利前生成的頁面標題。它看起來像$ 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; 

} ?> 
+5

你不分配功能,你調用該函數和指派返回值給你變量。 – aynber

+0

那麼我應該如何將它分配給這個變量,以便我可以在HEREDOC中調用它? – Andrew

+0

http://php.net/manual/en/functions.variable-functions.php – litelite

回答

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; 
0

寫作$title = the_title()實際調用的函數,然後將返回的值,這是正常現象,在所有的編程語言標準。如果您要分配的功能本身,你需要分配函數的名稱是這樣的:

$title = 'the_title' 

,然後在您想要的功能,被稱爲地方,你只要寫:

$title()

這將正常調用該功能。作爲一個經驗法則,你可以說如果()後面跟着一個東西,它將立即被調用。

source

相關問題