search
HomeBackend DevelopmentPHP TutorialPHP function callback function (1) Variable function definition, declaration and application

The so-called Callback function means that when calling a function, instead of passing a standard variable as a parameter, another function is passed as a parameter to the called function. If callback type parameters appear in the format description of the function, the function is a callback function. The previous section introduced php variable parameter functions, this section will get into the study of PHP callback functions.

The format description of the callback function is as follows:

mixed funName (callback arg)   //在参数列表中使用伪类型 callback 描述

callback is also a type of pseudo-type in PHP, indicating that the parameters of the function need to accept another function as an actual parameter. A very important question is why use functions as parameters? As introduced before, the execution behavior of the calling function can be changed by passing parameters, but sometimes the ability to only pass a value to the function is still limited. If a user-defined execution process can be passed to the function for use, it greatly increases the user's expansion of the function functionality. How to declare and use callback functions is also a critical issue. If you need to declare a callback function, you need to first understand the variable function.

Variable function

Variable function is also called variable function. If a variable name is followed by parentheses, PHP will look for a function with the same name as the variable's value and will attempt to execute it. For example, declare a function test() and assign the function name string test to the variable $demo. If you print the $demo variable directly, the output value must be the string test; but if you add parentheses $demo() after the $demo variable, the function corresponding to the $demo variable value test is called. In this way, different function names can be assigned to the same variable, and then the function can be called through the variable, which is similar to the application of polymorphic features in object-oriented.

The example code is as follows:

<?php
 function one($a,$b){
   return $a + $b;
 }
 function two($a,$b){
   return $a*$b;
 }
 function three($a,$b){
   return $a/$b;
 }
 $result = "one";          //将函数名one赋值给变量$result,执行$result()时则调用函数one()
 //$result = "two";        //将函数名two赋值给变量$result,执行$result()时则调用函数two()
 //$result = "three";      //将函数名three赋值给变量$result,执行$result()时则调用函数three()
 echo "结果是:".$result(4,6);   //变量$result接收到哪个函数名的值,就调用哪个函数
?>

In the above example, three functions one(), two() and three() are declared, using Used to calculate the sum, product and quotient of two numbers. And assign the function names of the three functions (without parentheses) to the variable $result as a string, then use the variable name $result followed by parentheses and pass in two integer parameters, it will Finds the function execution with the same name as the value of variable $result. Most functions can assign the function name to a variable to form a variable function. But variable functions cannot be used in language structures.

Use variable functions to declare and apply callback functions

If you want to customize a function that can be called back, you can choose to use variable functions Help achieve. When defining a callback function, the declaration structure of the function does not change, as long as the declared parameter is an ordinary variable. But when applying this parameter variable inside a function, if you add parentheses, you can call the function with the same name as the parameter value, so the parameter passed must be the name string of another function. The purpose of using the callback function is to pass a self-defined function to the function for use inside.

The code example is as follows:

<?php
 //声明回调函数filter, 在0-10的整数中通过自定义条件过滤不要的数字
 function filter($fun){
   for($i=0; $i<=10; $i++){
     //将参数变量$fun加上一个圆括号$fun(),则为调用和变量$fun值同名的函数
     if($fun($i))
       continue;
       echo $i.&#39;<br>&#39;;
   }
 }
 //声明一个函数one,如果参数是3的倍数就返回ture,否则返回false
 function one($num){
   return $num%3 == 0;
 }
 //声明一个函数two,如果参数是一个回文数返回ture,否则返回false
 function two($num){
   return $num == strrev($num);
 }
 filter("one");   //打印出10以内非3的倍数,参数one是函数one()的名称字符串,是一个回调
 echo "---------------------<br>";
 filter("two");   //打印出10以内非回文数,参数two是函数two()的名称字符串,是一个回调
?>

The result of running is:

PHP function callback function (1) Variable function definition, declaration and application

In the above example , if the declared function filter() only accepts ordinary values ​​as parameters, the number that the user can filter out will be relatively single. In this example, in the defined function filter(), a tax-containing value passed in as a filter condition is called. In this way, the function is much more powerful. You can filter out any numbers you don’t like in the filter() function. . By adding a parenthesis $fun() to the parameter variable $fun inside the function filter(), you can call a function with the same value as the variable $fun as a filtering condition. For example, in this example, two functions one() and two() are declared, which are used to filter out multiples and palindromes of 3 within 10 respectively. As long as the function names one and two are strings when calling filter() Passed to parameters, that is, these two functions are passed to the filter() function for internal use.

This chapter explains the variable function definition, declaration and application of the php callback function. In the next chapter we will introduce the call_user_func_array() function of the php callback function and its usage.

【Recommended related tutorials】

1. "php.cn Dugu Jiujian (4)-php video tutorial"

2. php programming from entry to master a full set of video tutorials

3. php practical video tutorial

The above is the detailed content of PHP function callback function (1) Variable function definition, declaration and application. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Email: Step-by-Step Sending GuidePHP Email: Step-by-Step Sending GuideMay 09, 2025 am 12:14 AM

PHPisusedforsendingemailsduetoitsintegrationwithservermailservicesandexternalSMTPproviders,automatingnotificationsandmarketingcampaigns.1)SetupyourPHPenvironmentwithawebserverandPHP,ensuringthemailfunctionisenabled.2)UseabasicscriptwithPHP'smailfunct

How to Send Email via PHP: Examples & CodeHow to Send Email via PHP: Examples & CodeMay 09, 2025 am 12:13 AM

The best way to send emails is to use the PHPMailer library. 1) Using the mail() function is simple but unreliable, which may cause emails to enter spam or cannot be delivered. 2) PHPMailer provides better control and reliability, and supports HTML mail, attachments and SMTP authentication. 3) Make sure SMTP settings are configured correctly and encryption (such as STARTTLS or SSL/TLS) is used to enhance security. 4) For large amounts of emails, consider using a mail queue system to optimize performance.

Advanced PHP Email: Custom Headers & FeaturesAdvanced PHP Email: Custom Headers & FeaturesMay 09, 2025 am 12:13 AM

CustomheadersandadvancedfeaturesinPHPemailenhancefunctionalityandreliability.1)Customheadersaddmetadatafortrackingandcategorization.2)HTMLemailsallowformattingandinteractivity.3)AttachmentscanbesentusinglibrarieslikePHPMailer.4)SMTPauthenticationimpr

Guide to Sending Emails with PHP & SMTPGuide to Sending Emails with PHP & SMTPMay 09, 2025 am 12:06 AM

Sending mail using PHP and SMTP can be achieved through the PHPMailer library. 1) Install and configure PHPMailer, 2) Set SMTP server details, 3) Define the email content, 4) Send emails and handle errors. Use this method to ensure the reliability and security of emails.

What is the best way to send an email using PHP?What is the best way to send an email using PHP?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

Best Practices for Dependency Injection in PHPBest Practices for Dependency Injection in PHPMay 08, 2025 am 12:21 AM

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHP performance tuning tips and tricksPHP performance tuning tips and tricksMay 08, 2025 am 12:20 AM

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.

PHP Email Security: Best Practices for Sending EmailsPHP Email Security: Best Practices for Sending EmailsMay 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software