If a call is made to an undefined method in a class, the magic method __call can intercept the call, so I could handle the situation as I see fit:
http://www.php.net/manual/en/language.oop5.o verloading.php# language.oop5.o verloading.meth ods
Is there any mechanism provided in php whereby I can do the same thing with functions in global scope.
The point is best illustrated with code:
Is this at all possible?
http://www.php.net/manual/en/language.oop5.o verloading.php# language.oop5.o verloading.meth ods
Is there any mechanism provided in php whereby I can do the same thing with functions in global scope.
The point is best illustrated with code:
Code:
<?php
function return_some_array(){
$a = array();
//Do stuff to array
return array();
}
// Now i call the function like so:
$give_me_array = return_some_array();
// But sometimes I want the array to not contain zeroes, nulls etc.
// so I call:
$give_me_array_filtered = return_some_array_filtered();
// But i haven't defined return_some_array_filtered() anywhere.
// Instead I would like to do something like so:
function __magic_call($function_name_passed_automatically){
preg_match('/(.*)_filtered$/', $function_name_passed_automatically, $matches);
$function_name_that_i_defined_earlier_called_return_some_array = $matches[1];
if($matches){
$result = call_user_func($function_name_that_i_defined_earlier_called_return_some_array);
$filtered = array_filter($result);
return $filtered;
}
}
//So now, I could call return_some_other_array_filtered() and it would work provided I had defined return_some_other_array().
//Or even Donkey_filtered() would work, provided I had defined Donkey() somewhere.
?>
Comment