php, pass function to method

hi,

i was wondering if it was possible to pass functions in a php class method?

e.g

test.php

function x(){
echo 'here';
}

$func = 'x';
$example = new Example($func());   <------------ is this possible?
-----------------------

class example{

public function __construct($function){
 if(SmartyValidate::is_valid($_POST)) {
           SmartyValidate::disconnect();
        // call the $function here
       } else {

           $smarty->assign($_POST);
           $smarty->display('xyz.tpl'); //set method for display
       }
       }
}}

thank you
MK15Asked:
Who is Participating?
 
eriksmtkaCommented:
I'm assuming that you're asking whether you can pass functions in PHP, like you can in Javascript; that would be a "no".  You cannot do that.

What you can do, though, is send the function name as a string, and execute it as such:
function x() {

}

function y($func_name) {
    $func_name();
}

y('x');

Open in new window


If you need to pass params to that function, just make it the second param, like this:

function x($param) {
    echo "hello world" . $param;
}

function y($func_name, $params) {
    $func_name($params);
}

y('x', ' ...goodbye');

Open in new window


function.. class method... pretty much the same exercise

Hope that helps..
0
 
eriksmtkaCommented:
additionally, you can look at this function... pretty much the same principle...

PHP Function (call_user_func_array)
0
 
MK15Author Commented:
thank you so much
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.