Forum und email

Μεταβλητές συναρτήσεις

Η PHP υποστηρίζει την έννοια των μεταβλητών συναρτήσεων. Αυτό σημαίνει πως αν ένα όνομα μεταβλητής έχει παρενθέσεις, η PHP θα ψάξει για μια συνάρτηση με το ίδιο όνομα που που της δίνει η μεταβλητή και θα προσπαθήσει να το εκτελέσει. Ανάμεσα στα άλλα πράγματα, αυτό μπορεί να χρησιμοποιηθεί για την υλοποίηση callbacks, πίνακες συναρτήσεων κ.α.

Οι μεταβλητές συναρτήσεις δε θα δουλέψουν με δομές γλώσσας όπως οι echo(), print(), unset(), isset(), empty(), include(), require() και άλλες παρόμοιες. Χρειάζετε να χρησιμοποιήσετε τη δική σας wrapper συνάρτηση για να χρησιμοποιήσετε οποιαδήποτε από τις δομές ως μεταβλητή συνάρτηση.

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