27

以下のスクリプトで、アイテムが宣言される順序は重要ですか?

たとえば、add_action がまだ定義されていない関数を指している場合はどうなりますか? それは重要ですか、それとも関数宣言は常に呼び出されたコードの前に置くべきですか?

add_action('load-categories.php', 'my_admin_init');
function my_admin_init(){
//do something
}
4

7 に答える 7

33

関数が呼び出しの前または後に宣言されているかどうかは問題ではありませんが、関数はスクリプト内に存在し、ロードする必要があります。

これは最初の方法であり、機能します。

some_func($a,$b);

function some_func($a,$b)
{
    echo 'Called';
}

これは 2 番目の方法で、次の方法でも機能します。

function some_func($a,$b)
{
    echo 'Called';
}

some_func($a,$b);
于 2011-03-29T04:49:42.713 に答える
10

PHPマニュアルから:

以下の 2 つの例に示すように、関数が条件付きで定義されている場合を除き、関数を参照する前に定義する必要はありません。

ただし、これは個人的な好みですが、実際に使用するすべての関数を外部functions.phpファイルに含めてから、メインの PHP ファイルの最上部で (好みに応じて)require_once()またはを使用することを強くお勧めします。include_once()これはより論理的に理にかなっています。他の誰かがあなたのコードを読んでいる場合、カスタム関数を使用していて、それらがfunctions.php. 多くの当て推量 IMO を節約します。

于 2011-03-29T04:54:11.777 に答える
3

定義する前に関数を呼び出すことができます。ファイルは最初に解析されてから実行されます。

于 2011-03-29T04:52:00.093 に答える
2

いいえ
、C :P ではありません...ここ
で わかるように、ファイル全体が最初に解析されてから実行されます。 存在しない関数が呼び出された場合、php はエラーをスローします。

致命的なエラー: 未定義の関数の呼び出し

于 2011-03-29T05:00:55.917 に答える
1

私の個人的な経験によると、いくつかの特別なケース(関数内または関数内の関数などに配列を渡すなど)で。呼び出しの上で関数を定義するのが最良のオプションです。このため、関数が機能せず、PHP がエラーをスローしない場合があります。

通常のphp関数では問題ありません。どちらのタイプもお使いいただけます。

于 2017-12-04T13:07:51.137 に答える
0

ページのどこかで宣言されている限り、問題ではありません。

ここに見られるように:

http://codepad.org/aYbO7TYh

于 2011-03-29T04:50:50.633 に答える
0

マニュアルのユーザー定義関数セクションの引用:

関数が条件付きで定義されている場合を除き、関数を参照する前に定義する必要はありません。

したがって、基本的には、関数の定義が書かれる前に関数を呼び出すことができますが、もちろん、関数を呼び出そうとするときに、PHP はその定義認識できなければなりません。

于 2011-03-29T04:53:07.923 に答える