为什么返回在我的函数代码中不起作用,但echo工作,php?

时间:2016-07-31 20:44:54

标签: php

查看我的代码,如果我使用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');
?>

1 个答案:

答案 0 :(得分:5)

它有效,你只是对结果不做任何事情:

fruit('apple');

如果你想回应结果,你必须回应它:

echo fruit('apple');

或者可能将其存储在一个变量中,然后用它做一些事情:

$result = fruit('apple');
// other code
echo $result;

调用函数不会告诉系统对该函数的结果做任何事情。该函数只是封装一个操作并返回一个结果。然后你必须对结果做点什么。