2016-10-31 6 views
2

多くの場合、add_actionコマンドの後に続く関数があります。add_actionと関数の順序は関係しますか?

視覚的な流れに関しては、私はいつもadd_actionを関数の下に移動し、それでも機能します。

私は最初に、どのような順序で表示されるのか、そしてほとんどの命令が最後に機能を含むように見えるかどうかを知りたいと思いますか?

add_action($hook, 'foo', $priority, $accepted_args); 
function foo() { 
    // Function code 
} 

または

function foo() { 
    // Function code 
} 
add_action($hook, 'foo', $priority, $accepted_args); 

は、それが機能がすでに読み込まれているとして、後者を使用する方が理にかなっていないでしょうか?

+0

両方の関数宣言は、(彼らは名前を持たない)匿名であることを考えると、この例では、意味の全体の多くを作成しません。 – deceze

+0

これは、順序を視覚的に表示するための単なる例です。それに応じて名前が付けられ、add_actionで参照されます。 – Lee

+2

重要かどうかは、 'add_action'が正確に何をするかによって決まります...一般的に:うまくいけば、明らかに問題はありません。 – deceze

答えて

0

順序は関係ありません。 PHPインタープリタは、2パスの手法を使用します。関数は最初のパスで定義され、関数は後でdo_action($hook)によって呼び出されたときにのみ実行されます。

ここでこのことについてもう少し:Does PHP interpret code in the same way that JavaScript does?

+0

これは、フラットな関数宣言の場合にのみ当てはまります。 'if'のような関数や他の条件文の中の関数宣言は、定義される前にそれらを呼び出そうとすると非常にうまくエラーを生成できます。 – deceze

関連する問題