परिभाषा और उपयोग
कॉलबैक PHP में एक छद्म प्रकार है। PHP 5.4 के साथ, कॉल करने योग्य प्रकार संकेत पेश किया गया है, जो कॉलबैक के समान है। जब किसी वस्तु को कॉल करने योग्य के रूप में पहचाना जाता है, तो इसका मतलब है कि इसे एक फ़ंक्शन के रूप में उपयोग किया जा सकता है जिसे कॉल किया जा सकता है। कॉल करने योग्य एक अंतर्निहित या उपयोगकर्ता परिभाषित फ़ंक्शन या किसी भी वर्ग के अंदर एक विधि हो सकती है।
is_callable() फ़ंक्शन का उपयोग यह सत्यापित करने के लिए किया जा सकता है कि पहचानकर्ता कॉल करने योग्य है या नहीं। PHP में call_user_function() है जो किसी फ़ंक्शन के नाम को एक पैरामीटर के रूप में स्वीकार करता है।
निम्नलिखित उदाहरण दिखाता है कि एक अंतर्निहित फ़ंक्शन कॉल करने योग्य है।
उदाहरण
<?php
var_dump (is_callable("abs"));
?> आउटपुट
यह निम्नलिखित परिणाम देगा -
bool(true)
निम्नलिखित उदाहरण में उपयोगकर्ता परिभाषित फ़ंक्शन को कॉल करने योग्य होने के लिए परीक्षण किया जाता है।
उदाहरण
<?php
function myfunction(){
echo "Hello World";
}
echo is_callable("myfunction") . "\n";
call_user_func("myfunction")
?> आउटपुट
यह निम्नलिखित परिणाम देगा -
1 Hello World
किसी ऑब्जेक्ट विधि को कॉल करने योग्य के रूप में पास करने के लिए, ऑब्जेक्ट स्वयं और उसकी विधि को एक सरणी में दो तत्वों के रूप में पास किया जाता है
उदाहरण
<?php
class myclass{
function mymethod(){
echo "This is a callable" . "\n";
}
}
$obj=new myclass();
call_user_func(array($obj, "mymethod"));
//array passed in literal form
call_user_func([$obj, "mymethod"]);
?> आउटपुट
यह निम्नलिखित परिणाम देगा -
This is a callable This is a callable
कक्षा में स्टेटिक विधि को कॉल करने योग्य के रूप में भी पारित किया जा सकता है। ऑब्जेक्ट के बजाय, क्लास का नाम ऐरे पैरामीटर में पहला एलिमेंट होना चाहिए
उदाहरण
<?php
class myclass{
static function mymethod(){
echo "This is a callable" . "\n";
}
}
$obj=new myclass();
call_user_func(array("myclass", "mymethod"));
//using scope resolution operator
call_user_func("myclass::mymethod");
?> आउटपुट
यह निम्नलिखित परिणाम देगा -
This is a callable This is a callable