関数内で関数を使用する場合の順序付けの仕組みがわかりません。
function funcChild(){
echo "Sparta";
}
function funcMain($panic){
echo "This is $panic";
}
funcMain(funcChild());
以下を出力します。
SpartaThis is
「これはスパルタです」と出力したいだけです。
関数内で関数を使用する場合の順序付けの仕組みがわかりません。
function funcChild(){
echo "Sparta";
}
function funcMain($panic){
echo "This is $panic";
}
funcMain(funcChild());
以下を出力します。
SpartaThis is
「これはスパルタです」と出力したいだけです。
return
次に、その場でではなく、次の関数に渡すことができるように、関数から値を取得する必要がありますecho
。
echo
とreturn
は同等ではありません。何かをエコーすると、どこにも保存されるのではなく、すぐに印刷されます。コードが実行されると、 がパラメータとして使用しようとしているfuncChild()
ため、 が最初に実行されます。「Sparta」を画面にエコーし、使用するものを何も返しません。つまり、入力なしで実行されます。funcMain()
funcChild()
funcMain()
funcMain()
echo "Sparta"
に変更return "Sparta"
function funcChild(){
return "Sparta";
}
function funcMain($panic){
echo "This is $panic";
}
funcMain(funcChild());
function funcChild(){
return "Sparta";
}
function funcMain($panic){
echo "This is $panic";
}
funcMain(funcChild());
これは数学のようなものです。裏返しから始めます。直接印刷ではなく、リターンを生成する必要があります。
function funcChild(){
return "Sparta"; // return ... not direct print!
}
function funcMain($panic){
echo "This is $panic";
}
funcMain(funcChild());
コードを次のように変更してみませんか。
function funcMain($panic) {
echo "This is $panic";
}
完了しますか?あなたがしようとしていることをしたい、またはする必要がある理由がわかりません。ただし、得られる結果が得られる理由は、funcChild への呼び出しが funcMain の引数として行われているためです。したがって、最初に funcChild が実行され、次に funcMain が実行されます。
やろうとしていることを絶対にやらなければならない場合は、 funcChild(funcMain()) がその方法になるはずです。