PHP তে Variable Functions কি?
PHP তে যখন একটি variable এর নামের সাথে parenthesis যুক্ত থাকে , তখন PHP সেই variable এর value বা মানের এর সাথে মিল রেখে একই নামে একটি function খুঁজতে থাকে। এবং function টি পেলে তা execute করে। PHP এর পরিভাষায় একে বলা হয় Variable function. চলুন নিচের উদাহরণ টি দেখা যাক :
<?php
function foo() {
echo "In foo()<br />\n";
}
function bar($arg = '')
{
echo "In bar(); argument was '$arg'.<br />\n";
}
// This is a wrapper function around echo
function echoit($string)
{
echo $string;
}
$func = 'foo';
$func(); // This calls foo()
$func = 'bar';
$func('test'); // This calls bar()
$func = 'echoit';
$func('test'); // This calls echoit()
?>
ব্যাখ্যা : লক্ষ্য করুন $func একটা variable এবং $func variable টির সাথে parenthesis থাকায় $func variable এর value বা মানের সাথে মিল রেখে যেইসব function পাচ্ছে তার সব গুলো কল হচ্ছে।
http://w3programmers.com/bangla/zend-certified-php-engineering-zcpe-course/embed/#?secret=s4hWri8AK7
PHP তে Variable Method কি?
PHP তে যখন একটি variable এর নামের সাথে parenthesis যুক্ত থাকে ,এবং সেটাকে যদি কোনো class এর object দিয়ে call করা হয়। তখন PHP সেই variable এর value বা মানের এর সাথে মিল রেখে একই নামে class এর object এর মধ্যে একটি method খুঁজতে থাকে। এবং method টি পেলে তা execute করে। PHP এর পরিভাষায় একে বলা হয় Variable method. চলুন নিচের উদাহরণ টি দেখা যাক :
?php
class Foo
{
function test()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "test";
$foo->$funcname(); // This calls $foo->test()
?>
আরেকটি জটিল উদাহরণ দেখা যাক :
<?php
class Foo
{
static function bar()
{
echo "bar\n";
}
function baz()
{
echo "baz\n";
}
}
$func = array("Foo", "bar");
$func(); // prints "bar" (It's same to Foo::bar)
$func = array(new Foo, "baz");
$func(); // prints "baz" (It's same to $func=new Foo; $func->baz)
$func = "Foo::bar";
$func(); // prints "bar" as of PHP 7.0.0; prior, it raised a fatal error
?>