-3

関数内で関数を使用する場合の順序付けの仕組みがわかりません。

function funcChild(){
    echo "Sparta";
}

function funcMain($panic){
    echo "This is $panic";
}



funcMain(funcChild());

以下を出力します。

SpartaThis is 

「これはスパルタです」と出力したいだけです。

4

5 に答える 5

1

return次に、その場でではなく、次の関数に渡すことができるように、関数から値を取得する必要がありますecho

于 2013-04-02T12:17:00.660 に答える
1

echoreturnは同等ではありません。何かをエコーすると、どこにも保存されるのではなく、すぐに印刷されます。コードが実行されると、 がパラメータとして使用しようとしているfuncChild()ため、 が最初に実行されます。「Sparta」を画面にエコーし、使用するものを何も返しません。つまり、入力なしで実行されます。funcMain()funcChild()funcMain()funcMain()

echo "Sparta"に変更return "Sparta"

function funcChild(){
    return "Sparta";
}

function funcMain($panic){
    echo "This is $panic";
}

funcMain(funcChild());
于 2013-04-02T12:17:28.210 に答える
0
function funcChild(){
    return "Sparta";
}

function funcMain($panic){
    echo "This is $panic";
}



funcMain(funcChild());
于 2013-04-02T12:17:48.040 に答える
0

これは数学のようなものです。裏返しから始めます。直接印刷ではなく、リターンを生成する必要があります。

function funcChild(){
    return "Sparta"; // return ... not direct print!
}

function funcMain($panic){
    echo "This is $panic";
}



funcMain(funcChild());
于 2013-04-02T12:18:54.563 に答える
0

コードを次のように変更してみませんか。

function funcMain($panic) {
  echo "This is $panic";
}

完了しますか?あなたがしようとしていることをしたい、またはする必要がある理由がわかりません。ただし、得られる結果が得られる理由は、funcChild への呼び出しが funcMain の引数として行われているためです。したがって、最初に funcChild が実行され、次に funcMain が実行されます。

やろうとしていることを絶対にやらなければならない場合は、 funcChild(funcMain()) がその方法になるはずです。

于 2013-04-02T12:22:09.470 に答える