Dalam PHP, fungsi panggil balik ialah teknik pengaturcaraan biasa yang boleh meningkatkan fleksibiliti dan kebolehgunaan semula kod. Melalui fungsi panggil balik, kita boleh menghantar fungsi sebagai parameter kepada fungsi lain untuk dipanggil dalam keadaan tertentu. Pendekatan ini menjadikan struktur kod lebih jelas dan membolehkan tingkah laku fungsi diubah secara dinamik mengikut keperluan. Artikel ini akan memperkenalkan cara melaksanakan fungsi panggil balik dalam PHP dan cara menggunakan fungsi panggil balik dengan berkesan untuk memudahkan logik kod dan meningkatkan kebolehselenggaraan kod. Editor PHP Baicao akan menerangkan kepada anda secara terperinci cara menggunakan fungsi panggil balik, membolehkan anda menguasai teknologi pengaturcaraan penting ini dengan mudah.
callback
函数并使用 call_user_func
php
Kami mencipta fungsi callback
yang dipanggil testFunct<code>testFunct<strong class="keylink">io</strong>n()
的 callback
函数,并使用 call_user_func()
ion() dan menggunakan kaedah call_user_func()
dengan memberikan nama fungsi sebagai Rentetan
Contoh:
<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">'testFunction'</span>); </span></span><span style="display:flex;"><span><span style="color:#bc7a00">?></span><span > </span></span></span></code></code>
<code> <code class="language-text hljs" data-lang="text"><span style="display:flex;"><span>Testing Callback </span></span></code></code>
callback
函数并使用 array_map
Cipta
array_map
方法执行 callback
函数。这将使用传递给 array_map()
Kami melaksanakan kaedah ini menggunakan data yang sepadan bagi fungsi
Contoh:
<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>
<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>
testCallBacks()
的用户定义函数执行两个名为 name
和 age
的 callback
Kami akan menggunakan fungsi yang dipanggil
Contoh:
<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>
<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>
static
类和 call_user_func
将 static
方法实现为 callback
Menggunakan dalam PHP
static
方法创建两个 static
类,并使用 call_user_func()
方法将它们作为 callbacks
Kami akan menggunakan
<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>
<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>
Atas ialah kandungan terperinci Melaksanakan fungsi panggil balik dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!