1. call_user_func
Copy codeThe Code is as follows:
Function a ($ B, $ c ){
Echo $ B;
Echo $ c;
}
Call_user_func ('a, "111", "222 ");
Call_user_func ('a, "333", "444 ");
// Display 111 222 333 444
?>
The internal method of calling the class is strange. The method actually uses an array and does not know how developers think about it. Of course, the new method is saved, which is also innovative:
Copy codeThe Code is as follows:
Class {
Function B ($ c ){
Echo $ c;
}
}
Call_user_func (array ("a", "B"), "111 ");
// Display 111
?>
2. call_user_func_array
The call_user_func_array function is similar to call_user_func, but the parameter is passed in another way to make the parameter structure clearer:
Copy codeThe Code is as follows:
Function a ($ B, $ c ){
Echo $ B;
Echo $ c;
}
Call_user_func_array ('A', array ("111", "222 "));
// Display 111 222
?>
The call_user_func_array function can also call internal methods of the class.
Copy codeThe Code is as follows:
Class ClassA {
Function bc ($ B, $ c ){
$ Bc = $ B + $ c;
Echo $ bc;
}
}
Call_user_func_array (array ('classa ', 'bc'), array ("111", "222 "));
// Display 333
?>
Call_user_func and call_user_func_array Functions Support reference, which makes them more functional than normal function calls:
Copy codeThe Code is as follows:
Function a (& $ B ){
$ B ++;
}
$ C = 0;
Call_user_func ('A', & $ c );
Echo $ c; // display 1
Call_user_func_array ('A', array (& $ c ));
Echo $ c; // display 2