查看我的代码,如果我使用echo $ html_of_questions,它可以工作。如果我使用return,则不起作用。为什么?我应该使用echo吗?因为我被告知我应该总是在函数内部使用return。
<?php
function fruit($fruit){
$questions = [
'q1' => '<div>Is it good?</div>
<input type="text" value="submit"/>',
'q2' => '<div>where is it from?</div>
<input type="text" value="submit"/>',
];
$fruit_questions = [
'apple' => [1,3,5],
'banana' => [1,2,4],
'guava' => [17,21,4],
];
$question_keys = $fruit_questions[$fruit];
$html_of_questions = ''; // This will hold the questions to echo
foreach($question_keys as $question_key){
$html_of_questions .= $questions['q'.$question_key]
}
return $html_of_questions;//doesn't work, use echo it works
}
fruit('apple');
?>
答案 0 :(得分:5)
它有效,你只是对结果不做任何事情:
fruit('apple');
如果你想回应结果,你必须回应它:
echo fruit('apple');
或者可能将其存储在一个变量中,然后用它做一些事情:
$result = fruit('apple');
// other code
echo $result;
调用函数不会告诉系统对该函数的结果做任何事情。该函数只是封装一个操作并返回一个结果。然后你必须对结果做点什么。