Difference between revisions of "PHP/function variable"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< PHP
Jump to navigation Jump to search
Line 23: Line 23:
 
The variable can be used to call the function in exactly the same way as if it had been assigned an anonymous function.
 
The variable can be used to call the function in exactly the same way as if it had been assigned an anonymous function.
 
===Anonymous Functions===
 
===Anonymous Functions===
 +
<small>''[https://www.php.net/manual/en/functions.anonymous.php official documentation]''</small>
 
<syntaxhighlight lang=php>
 
<syntaxhighlight lang=php>
 
$fEx3 = function() { echo "Anonymous function was called!\n"; };
 
$fEx3 = function() { echo "Anonymous function was called!\n"; };

Revision as of 17:40, 10 April 2022

About

A variable can store a reference to a function, which can then be called from the variable.

Named Functions/Methods

The thing that isn't explained very well in the documentation is that if you want to assign a predefined function to a variable, you just use a string which is a callable/accessible form of the function.

function Example1() { echo "Example1 was called!\n"; }

#$fEx1 = Example1;  // does not work; sees "Example1" as a constant
$fEx1 = 'Example1';

$fEx1();  // prints "Example1 was called!"
class cExample2 {
    static public function Test1() { echo "Test1 was called!\n"; }
}

#$fEx2 = cExample2::Test1;  // does not work; sees "Test1" as a class constant
$fEx2 = 'cExample2::Test1';
$fEx2(); // prints "Test1 was called!"

The variable can be used to call the function in exactly the same way as if it had been assigned an anonymous function.

Anonymous Functions

official documentation

$fEx3 = function() { echo "Anonymous function was called!\n"; };
$fEx3();  // prints "Anonymous function was called!"

Unlike with predefined functions, however, the type for the variable is Callable rather than string.

Documentation