Reputation: 9930
I'm passing some post data to execute a function based on post data, to determine if this should execute I've tried to use the following:
$SP = new StoredProcedure();
if(function_exists($SP->$_POST['function']))
{
$SP->$_POST['function']();
}
else
{
echo 'function does not exist.';
}
Unfortunately this passes the following error:
Notice: Undefined property: StoredProcedure::$getFormList in C:\DWASFiles\Sites\junglegym\VirtualDirectory0\site\wwwroot\wp-content\plugins\qcore\qcore_waitress.php on line 353 function does not exist.
I'm certain this function does exist, and when I execute it without the function_exists()
Is there a way to check if a function exists when it's inside a class?
Upvotes: 2
Views: 3530
Reputation:
check this all
Find out if a method exists in a static class
and also PHP manual at
php.net/method_exists
php.net/manual/en/function.function-exists.php
www.php.net/class_exists
Hope these might help you.
Upvotes: 2
Reputation: 3682
method_exists
checks for method of a class for a given object:
Docs Link: http://www.php.net/method_exists
if(method_exists($SP, $_POST['function'])) {
{
$SP->$_POST['function']();
}
else
{
echo 'function does not exist.';
}
function_exists()
and method_exists()
are for these checks. First is for regular functions and second for OOP
functions.
Upvotes: 5
Reputation: 10142
You should use method_exists
Try with:
if(method_exists($SP, $_POST['function'])) {
Upvotes: 4