Wenn durch Wordpress Suche Schnipsel / tutorials / Plugins , die ich oft sehen add_action()
und add_filter()
platziert wird , bevor die Funktion deklariert ist:
add_action( 'publish_post', 'email_friends' );
function email_friends( $post_ID ) {
$friends = '[email protected], [email protected]';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
Aus logischer Sicht ergibt das für mich einfach keinen Sinn. Warum sollten Sie die Funktion platzieren, nachdem sie in Ihrem Code aufgerufen wurde? So gehe ich normalerweise mit der gleichen Situation um:
function email_friends( $post_ID ) {
$friends = '[email protected], [email protected]';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
add_action( 'publish_post', 'email_friends' );
Ich weiß, dass beide Szenarien funktionieren, aber gibt es einen bestimmten Vorteil für das eine oder andere? In etwa 90% der Fälle sehe ich, dass das erste Szenario verwendet wird, was mich zu der Annahme veranlasst, dass dies in gewisser Weise von Vorteil ist.
quelle
Eigentlich gibt es keinen wirklichen Unterschied. Ich bevorzuge beispielsweise das erste Szenario, da es besser ist, Anrufe an einem Ort zu platzieren und darunter liegende Funktionen zu definieren. PHP analysiert das gesamte Dokument, bevor etwas ausgeführt wird, und wenn die Funktionen richtig definiert sind, funktioniert alles normal, kein Vorteil in beiden Szenarien.
Ich glaube das richtige Sprichwort hier ist: Was auch immer dein Boot schwimmt :)
quelle
call_user_func_array()
es (höchstwahrscheinlich) nach Ihrer Funktionsdefinition aufgerufen wird, wenn es ausgeführt wirddo_action
. So können Sie die Hook-Funktion bis zu diesem Punkt an einer beliebigen Stelle definieren.4 Jahre später, aber ich bin sicher, es wird den Leuten helfen, von der Suche hierher zu kommen.
Wie bereits erwähnt, gibt es keinen Unterschied, da PHP das gesamte Dokument analysiert und in der richtigen Reihenfolge ausführt. Also, was auch immer du magst.
Ich persönlich mag den ersten Stil:
Ich neige dazu, rückwärts zu denken. Wenn Sie so wollen, zielorientiert. Also lese ich gerne: "Wir machen die Funktionsleiste im Haken. Okay, cool, was macht die Funktion jetzt?"
Es stellt den Kontext für die Funktion besser ein. Dies ist natürlich nur meine persönliche Präferenz. Also mach was du willst.
quelle