Forum und email

משתני פונקציות

PHP תומכת במושג של משתני פונקציות. הכוונה היא שאם למשתנה יוספו סוגריים, PHP תנסה לחפש פונקציה בשם אותו מכיל המשתנה ולהריץ אותה. בתוך כל הדברים המגניבים שניתן לעשות עם הדבר הזה, ניתן ליישם טבלת פונקציות, callbacks וכן הלאה.

משתני פונקציות לא עובדים עם רכיבי השפה כגון echo(), print(), unset(), isset(), empty(), include(), require() וכדו'. אם אתה רוצה להשתמש בהם כמשתני פונקציות, אתה צריך ל"עטוף" אותם בפונקציות משלך.

Example#1 דוגמא למשתני פונקציות

<?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()
?>

ניתן גם לקרוא לשיטה של אובייקט על ידי שימוש במשתני פונקציות.

Example#2 דוממא למשתנה שיטה

<?php
class Foo
{
    function Var()
    {
        
$name 'Bar';
        
$this->$name(); // This calls the Bar() method
    
}
    
    function 
Bar()
    {
        echo 
"This is Bar";
    }
}

$foo = new Foo();
$funcname "Var";
$foo->$funcname();  // This calls $foo->Var()

?>

ראה גם call_user_func(), משתני משתנים ו function_exists().