Implémentation de fonctions de rappel en PHP

WBOY
Libérer: 2024-02-28 10:10:01
avant
483 Les gens l'ont consulté

En PHP, la fonction de rappel est une technique de programmation courante qui peut améliorer la flexibilité et la réutilisabilité du code. Grâce aux fonctions de rappel, nous pouvons transmettre des fonctions en tant que paramètres à d'autres fonctions à appeler dans des conditions spécifiques. Cette approche rend la structure du code plus claire et permet de modifier dynamiquement le comportement de la fonction selon les besoins. Cet article présentera comment implémenter les fonctions de rappel en PHP et comment utiliser efficacement les fonctions de rappel pour simplifier la logique du code et améliorer la maintenabilité du code. L'éditeur PHP Baicao vous expliquera en détail comment utiliser les fonctions de rappel, vous permettant de maîtriser facilement cette importante technologie de programmation.


Créez une exécution en callback 函数并使用 call_user_funcphp

Nous avons créé une fonction callback appelée testFunct<code>testFunct<strong class="keylink">io</strong>n()callback 函数,并使用 call_user_func()ion() et utilisé la méthode call_user_func() en donnant le nom de la fonction comme La chaîne

est passé à la méthode pour l'exécuter.

Exemple :

<code>
<code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">testFunction</span>() {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">"Testing Callback </span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#ba2121">"</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">// Standard callback
</span></span></span><span style="display:flex;"><span>call_user_func(<span style="color:#ba2121">&#39;testFunction&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>
Copier après la connexion
Résultat :
<code>
<code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>Testing Callback
</span></span></code></code>
Copier après la connexion

callback 函数并使用 array_map Créer une

exécution de méthode en PHP

array_map 方法执行 callback 函数。这将使用传递给 array_map() Nous exécutons cette méthode en utilisant les données correspondantes de la fonction

.

Exemple :

<code>
<code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">length_callback</span>(<span style="color:#19177c">$item</span>) {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">return</span> strlen(<span style="color:#19177c">$item</span>);
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#19177c">$strings</span> <span style="color:#666">=</span> [<span style="color:#ba2121">"Kevin Amayi"</span>, <span style="color:#ba2121">"Programmer"</span>, <span style="color:#ba2121">"N<strong class="keylink">ai</strong>robi"</span>, <span style="color:#ba2121">"Data Science"</span>];
</span></span><span style="display:flex;"><span><span style="color:#19177c">$lengths</span> <span style="color:#666">=</span> array_map(<span style="color:#ba2121">"length_callback"</span>, <span style="color:#19177c">$strings</span>);
</span></span><span style="display:flex;"><span>print_r(<span style="color:#19177c">$lengths</span>);
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>
Copier après la connexion
Résultat :
<code>
<code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>Array ( [0] => 11 [1] => 10 [2] => 7 [3] => 12 )
</span></span></code></code>
Copier après la connexion

Implémentez plusieurs fonctions de rappel en PHP et exécutez-les à l'aide de fonctions définies par l'utilisateur

testCallBacks() 的用户定义函数执行两个名为 nameagecallback Nous utiliserons une fonction appelée

pour contourner les fonctions définies par l'utilisateur en passant le nom de la fonction sous forme de chaîne.

Exemple :

<code>
<code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">name</span>(<span style="color:#19177c">$str</span>) {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">return</span> <span style="color:#19177c">$str</span> <span style="color:#666">.</span> <span style="color:#ba2121">" Kevin"</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">age</span>(<span style="color:#19177c">$str</span>) {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">return</span> <span style="color:#19177c">$str</span> <span style="color:#666">.</span> <span style="color:#ba2121">" Kevin 23 "</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">testCallBacks</span>(<span style="color:#19177c">$str</span>, <span style="color:#19177c">$f<strong class="keylink">ORM</strong>at</span>) {
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">// Calling the $format callback function
</span></span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#19177c">$format</span>(<span style="color:#19177c">$str</span>)<span style="color:#666">.</span><span style="color:#ba2121">"<br>"</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">// Pass "name" and "age" as callback functions to testCallBacks()
</span></span></span><span style="display:flex;"><span>testCallBacks(<span style="color:#ba2121">" Hello"</span>, <span style="color:#ba2121">"name"</span>);
</span></span><span style="display:flex;"><span>testCallBacks(<span style="color:#ba2121">" Hello"</span>, <span style="color:#ba2121">"age"</span>);
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>
Copier après la connexion
Résultat :
<code>
<code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>Hello Kevin
</span></span><span style="display:flex;"><span>Hello Kevin 23
</span></span></code></code>
Copier après la connexion

static 类和 call_user_funcstatic 方法实现为 callback Utiliser les

Fonctions

en PHP static 方法创建两个 static 类,并使用 call_user_func() 方法将它们作为 callbacks Nous utiliserons

pour exécuter.

<code>
<code class="language-php hljs" data-lang="php"><span style="display:flex;"><span><span style="color:#666"><?</span>php
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">// Sample Person class
</span></span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">class</span> <span style="color:#00f;font-weight:bold">Person</span> {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">static</span> <span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">walking</span>() {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">"I am moving my feet <br>"</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">//child class extends the parent Person class
</span></span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">class</span> <span style="color:#00f;font-weight:bold">Student</span> <span style="color:#008000;font-weight:bold">extends</span> Person {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">static</span> <span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">walking</span>() {
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">echo</span> <span style="color:#ba2121">"student is moving his/her feet <br>"</span>;
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">// Parent class Static method callbacks
</span></span></span><span style="display:flex;"><span>call_user_func(<span style="color:#008000;font-weight:bold">array</span>(<span style="color:#ba2121">'Person'</span>, <span style="color:#ba2121">'walking'</span>));
</span></span><span style="display:flex;"><span>call_user_func(<span style="color:#ba2121">'Person::walking'</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic">// Child class Static method callback
</span></span></span><span style="display:flex;"><span>call_user_func(<span style="color:#008000;font-weight:bold">array</span>(<span style="color:#ba2121">'Student'</span>, <span style="color:#ba2121">'Student::walking'</span>));
</span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span >
</span></span></span></code></code>
Copier après la connexion
Résultat : 🎜
<code>
<code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>I am moving my feet
</span></span><span style="display:flex;"><span>I am moving my feet
</span></span><span style="display:flex;"><span>student is moving his/her feet
</span></span></code></code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:lsjlt.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal