[英]Calling a php function as a parameter inside a function call
我正在嘗試將數據庫中的數據打印為hcard格式:
...
<span class='n'>
<span class="given-name">John</span>
...
</span>
然后我創建了這個php函數:
function print_row ($html_tag, $type, $value) {
echo '<'.$html_tag.' class="'.$type.'">'.$value.'</'.$html_tag.'>';
}
// Calling function
print_row('span', 'given_name', 'John');
// Output
<span class="given_name">Nathan</span>
這個工作如我所料,直到我試圖打電話給我print_row
函數作為一個參數print_row
功能。
print_row('span', 'n', print_row('span', 'given_name', 'Nathan'));
// Output
<span class="given_name">Nathan</span>
<span class="n"></span>
// Wanted Output
<span class="n"><span class="given_name">Nathan</span></span>
在函數調用中,幾乎總是使用return
而不是echo
。
為什么? 因為return
返回數據並讓您存儲和回顯數據。 echo
只是將其呈現給瀏覽器。
基本的return
和echo
函數的示例是print_r()
。 它要么執行echo
,要么在第二個參數為TRUE時return
。
你應該改變
function print_row ($html_tag, $type, $value) {
echo '<'.$html_tag.' class="'.$type.'">'.$value.'</'.$html_tag.'>';
}
至
function print_row ($html_tag, $type, $value) {
return '<'.$html_tag.' class="'.$type.'">'.$value.'</'.$html_tag.'>';
}
並在現有位置上相應地回顯該功能。
這或添加一個第四個參數return
,而不是echo
:
function print_row ($html_tag, $type, $value, $bool = FALSE) {
$str = '<'.$html_tag.' class="'.$type.'">'.$value.'</'.$html_tag.'>';
if ($bool)
return $str;
else echo $str;
}
print_row('span', 'n', print_row('span', 'given_name', 'Nathan', TRUE));
// Added a ', TRUE' at the second last ')'
您必須從函數返回值,而不是echo
它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.