- PHP - Home
- PHP - Roadmap
- PHP - Introduction
- PHP - Installation
- PHP - History
- PHP - Features
- PHP - Syntax
- PHP - Hello World
- PHP - Comments
- PHP - Variables
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ and $$ Variables
- PHP - Constants
- PHP - Magic Constants
- PHP - Data Types
- PHP - Type Casting
- PHP - Type Juggling
- PHP - Strings
- PHP - Boolean
- PHP - Integers
- PHP - Files & I/O
- PHP - Maths Functions
- PHP - Heredoc & Nowdoc
- PHP - Compound Types
- PHP - File Include
- PHP - Date & Time
- PHP - Scalar Type Declarations
- PHP - Return Type Declarations
- PHP - Operators
- PHP - Arithmetic Operators
- PHP - Comparison Operators
- PHP - Logical Operators
- PHP - Assignment Operators
- PHP - String Operators
- PHP - Array Operators
- PHP - Conditional Operators
- PHP - Spread Operator
- PHP - Null Coalescing Operator
- PHP - Spaceship Operator
- PHP Control Statements
- PHP - Decision Making
- PHP - If…Else Statement
- PHP - Switch Statement
- PHP - Loop Types
- PHP - For Loop
- PHP - Foreach Loop
- PHP - While Loop
- PHP - Do…While Loop
- PHP - Break Statement
- PHP - Continue Statement
- PHP Arrays
- PHP - Arrays
- PHP - Indexed Array
- PHP - Associative Array
- PHP - Multidimensional Array
- PHP - Array Functions
- PHP - Constant Arrays
- PHP Functions
- PHP - Functions
- PHP - Function Parameters
- PHP - Call by value
- PHP - Call by Reference
- PHP - Default Arguments
- PHP - Named Arguments
- PHP - Variable Arguments
- PHP - Returning Values
- PHP - Passing Functions
- PHP - Recursive Functions
- PHP - Type Hints
- PHP - Variable Scope
- PHP - Strict Typing
- PHP - Anonymous Functions
- PHP - Arrow Functions
- PHP - Variable Functions
- PHP - Local Variables
- PHP - Global Variables
- PHP Superglobals
- PHP - Superglobals
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP File Handling
- PHP - File Handling
- PHP - Open File
- PHP - Read File
- PHP - Write File
- PHP - File Existence
- PHP - Download File
- PHP - Copy File
- PHP - Append File
- PHP - Delete File
- PHP - Handle CSV File
- PHP - File Permissions
- PHP - Create Directory
- PHP - Listing Files
- Object Oriented PHP
- PHP - Object Oriented Programming
- PHP - Classes and Objects
- PHP - Constructor and Destructor
- PHP - Access Modifiers
- PHP - Inheritance
- PHP - Class Constants
- PHP - Abstract Classes
- PHP - Interfaces
- PHP - Traits
- PHP - Static Methods
- PHP - Static Properties
- PHP - Namespaces
- PHP - Object Iteration
- PHP - Encapsulation
- PHP - Final Keyword
- PHP - Overloading
- PHP - Cloning Objects
- PHP - Anonymous Classes
- PHP Web Development
- PHP - Web Concepts
- PHP - Form Handling
- PHP - Form Validation
- PHP - Form Email/URL
- PHP - Complete Form
- PHP - File Inclusion
- PHP - GET & POST
- PHP - File Uploading
- PHP - Cookies
- PHP - Sessions
- PHP - Session Options
- PHP - Sending Emails
- PHP - Sanitize Input
- PHP - Post-Redirect-Get (PRG)
- PHP - Flash Messages
- PHP AJAX
- PHP - AJAX Introduction
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - AJAX RSS Feed Example
- PHP XML
- PHP - XML Introduction
- PHP - Simple XML Parser
- PHP - SAX Parser Example
- PHP - DOM Parser Example
- PHP Login Example
- PHP - Login Example
- PHP - Facebook Login
- PHP - Paypal Integration
- PHP - MySQL Login
- PHP Advanced
- PHP - MySQL
- PHP.INI File Configuration
- PHP - Array Destructuring
- PHP - Coding Standard
- PHP - Regular Expression
- PHP - Error Handling
- PHP - Try…Catch
- PHP - Bugs Debugging
- PHP - For C Developers
- PHP - For PERL Developers
- PHP - Frameworks
- PHP - Core PHP vs Frame Works
- PHP - Design Patterns
- PHP - Filters
- PHP - JSON
- PHP - Exceptions
- PHP - Special Types
- PHP - Hashing
- PHP - Encryption
- PHP - is_null() Function
- PHP - System Calls
- PHP - HTTP Authentication
- PHP - Swapping Variables
- PHP - Closure::call()
- PHP - Filtered unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - Expectations
- PHP - Use Statement
- PHP - Integer Division
- PHP - Deprecated Features
- PHP - Removed Extensions & SAPIs
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI Process
- PHP - PDO Extension
- PHP - Built-In Functions
PHP - Lua::registerCallback() Function
The PHP Lua::registerCallback() function is used to allow PHP functions to be linked to Lua. It means that a PHP function can be called by your Lua script. It is helpful for allowing simple communication between Lua scripts and PHP code.
This method involves creating a PHP function with Lua after it has been defined. After registering, Lua can use the function as if it were its own. This will be useful for applications that combine PHP and Lua.
Syntax
Below is the syntax of the PHP Lua::registerCallback() function −
public Lua::registerCallback ( string $name, callable $function )
Parameters
Here are the parameters of the registerCallback() function −
$name − This is the name you want to give the Lua callback function. It must be a valid string since it will be used to call the PHP function from Lua scripts.
$function − It can be a class method, anonymous function, or standard function as long as it can be called.
Return Value
The registerCallback() function returns $this, NULL for invalid arguments, or FALSE for other failures.
Example 1
This program shows how to register a simple PHP function as a Lua callback using the PHP Lua::registerCallback() function. The Lua script adds two numbers using the registered PHP function.
<?php
// Include Lua extension
$lua = new Lua();
// Define a simple PHP function
function addNumbers($a, $b) {
return $a + $b;
}
// Register the function as a Lua callback
$lua->registerCallback('add', 'addNumbers');
// Lua script calling the PHP function
$lua->eval('result = add(5, 10)');
echo $lua->result;
?>
Output
Here is the outcome of the following code −
15
Example 2
This example uses an anonymous function called registerCallback() to calculate the square of a value. Lua talks with the anonymous PHP function via the callback.
<?php
// Include Lua extension
$lua = new Lua();
// Register an anonymous function as a Lua callback
$lua->registerCallback('square', function ($number) {
return $number * $number;
});
// Lua script using the callback
$lua->eval('result = square(6)');
echo $lua->result;
?>
Output
This will generate the below output −
36
Example 3
This program registers a class method as a Lua callback. The class method calculates a number's factorial, which Lua invokes using the callback.
<?php
// Include Lua extension
$lua = new Lua();
// Define a class with a static method
class MathHelper {
public static function factorial($n) {
return ($n === 0 || $n === 1) ? 1 : $n * self::factorial($n - 1);
}
}
// Register the class method as a Lua callback
$lua->registerCallback('factorial', ['MathHelper', 'factorial']);
// Lua script calling the method
$lua->eval('result = factorial(5)');
echo $lua->result;
?>
Output
This will create the below output −
120