Dynamic Invocation PHP: is_callable, call_user_func, call_user_func_array
19 Sep 2011 Leave a Comment
in OOP
melakukan pemanggilan dan pe-lambda-an / dynamic invocation kedalam fungsi kelas
contoh penggunaan lambda dari fungsi:
$lambda = rand(0,1) ? function() { echo "Heads!"; } :
function() { echo "Tails!"; };
$lambda(); // <= Dynamic Invocation!
sementara untuk is_callable adalah sebuah methode untuk menentukan apakah sebuah fungsi dapat dipanggil/dideklarasikan atau tidak
function heads() { echo "Heads function!"; }
$function = 'heads';
is_callable($function); // true
$lambda = function() { echo "Tails function!"; }
is_callable($lambda); // true
$asalAja = "loramIpsumSitAmet";
is_callable($asalAja); // false
sementara untuk fungsi didalam kelas kita tidak dapaat menggunakan is_callable
class Objects {
function methods($who, $what) {
echo "$who are Great $what!";
}
}
$callableArray = array(new Objects, 'methods');
if(is_callable($callableArray)) {
call_user_func($callableArray, "You", "Success");
call_user_func_array($callableArray, array("You", "Success"));
}
perintah call_user_func dan call_user_func_array berhasil dijalankan
