Php call function by string
Solution: Use PHP7Note: For a summarized version, see TL;DR at the end of the answer. Show
Old MethodsUpdate: One of the old methods explained here has been removed. Refer to other answers for explanation on other methods, it isn't covered here. By the way, if this answer doesn't help you, you should return upgrading your stuff. PHP 5.6 support has ended in January 2019 (now even PHP 7.2 and 7.3 are not being supported). See supported versions for more information. As others mentioned, in PHP5 (and also in newer versions like PHP7) we could use variables as function names, use New MethodsAs of PHP7, there are new ways introduced: Note: Everything inside Dynamic Function Call: Function Name On-the-flyWe can form a function name inside parentheses in just one go:
For example:
Note: Although removing the parentheses around Dynamic Function Call: Callable PropertyA useful example would be in the context of objects: If you have stored a callable in a property, you have to call it this way:
As a simple example:
Obviously, calling it as Dynamic Method Call: Method Name On-the-flyJust like dynamic function calls, we can do the same way with method calls, surrounded by curly braces instead of parentheses (for extra forms, navigate to TL;DR section):
See it in an example:
Dynamic Method Call: The Array SyntaxA more elegant way added in PHP7 is the following:
As an example:
Note: The benefit of using this method over the previous one is that, you don't care about the call type (i.e. whether it's static or not). Note: If you care about performance (and micro-optimizations), don't use this method. As I tested, this method is really slower than other methods (more than 10 times). Extra Example: Using Anonymous ClassesMaking things a bit complicated, you could use a combination of anonymous classes and the features above:
TL;DR (Conclusion)Generally, in PHP7, using the following forms are all possible:
Special thanks to this PHP talk. How do you call a function in PHP?There are two methods for doing this. One is directly calling function by variable name using bracket and parameters and the other is by using call_user_func() Function but in both method variable name is to be used. call_user_func( $var );
How do you call a method in string?There are two methods to call a function from string stored in a variable. The first one is by using the window object method and the second one is by using eval() method. The eval() method is older and it is deprecated.
How do you call a PHP function as a variable?Use the Variable Method to Call a Function From a String Stored in a Variable in PHP. In PHP, we can also store the functions in variables. The function name should be assigned to a variable as a string, and then we can call the function a variable.
How do I call a PHP function from another file?To call a function from another file in PHP, you need to import the file where the function is defined before calling it. You can import a PHP file by using the require statement.
|