परिचय
यदि किसी वेरिएबल के नाम के सामने पैरेंथेसिस (पैरामीटर्स के साथ या बिना) होता है, तो PHP पार्सर उस फ़ंक्शन को खोजने का प्रयास करता है जिसका नाम वेरिएबल के मान से मेल खाता है और उसे निष्पादित करता है। ऐसे फ़ंक्शन को वेरिएबल फ़ंक्शन कहा जाता है। यह सुविधा कॉलबैक, फ़ंक्शन टेबल्स आदि को लागू करने में उपयोगी है।
वेरिएबल फ़ंक्शन्स को include, require, echo आदि जैसे भाषा कंस्ट्रक्ट्स के साथ नहीं बनाया जा सकता। हालांकि, फ़ंक्शन रैपर्स का उपयोग करके एक वर्कअराउंड खोजा जा सकता है।
वेरिएबल फ़ंक्शन उदाहरण
उदाहरण 1: बुनियादी वेरिएबल फ़ंक्शन
निम्न उदाहरण में, एक वेरिएबल का मान फ़ंक्शन के नाम से मेल खाता है। वेरिएबल के सामने पैरेंथेसिस रखकर फ़ंक्शन को इस प्रकार कॉल किया जाता है:
<?php
function hello() {
echo "Hello World";
}
$var = "hello";
$var();
?>
आउटपुट
Hello World
उदाहरण 2: आर्गुमेंट्स के साथ वेरिएबल फ़ंक्शन
<?php
function add($x, $y) {
echo $x + $y;
}
$var = "add";
$var(10, 20);
?>
आउटपुट
30
उदाहरण 3: उपयोगकर्ता इनपुट से फ़ंक्शन नाम
<?php
function add($x, $y) {
echo $x + $y;
}
function sub($x, $y) {
echo $x - $y;
}
$var = readline("enter name of function: ");
$var(10, 20);
?>
आउटपुट
enter name of function: add 30
वेरिएबल मेथड उदाहरण
वेरिएबल फ़ंक्शन की अवधारणा को क्लास में मेथड तक बढ़ाया जा सकता है।
उदाहरण 4: वेरिएबल मेथड कॉल
<?php
class myclass {
function welcome($name) {
echo "Welcome $name";
}
}
$obj = new myclass();
$f = "welcome";
$obj->$f("Amar");
?>
आउटपुट
Welcome Amar
उदाहरण 5: स्टैटिक मेथड के साथ वेरिएबल मेथड
<?php
class myclass {
static function welcome($name) {
echo "Welcome $name";
}
}
$f = "welcome";
myclass::$f("Amar");
?>
आउटपुट
Welcome Amar