Warning: call_user_func() [function.call-user-func]: First argument is expected to be a valid callback
✔ Recommended Answer
Just for the fun of it another one ... (not tested though).
class myClass{ protected $callback = 'myCallback'; protected $body = false; public function myFunction() { ... curl_setopt($ch, CURLOPT_WRITEFUNCTION, array($this, 'test')); ... } public function test($handle, $line) { if ($this->body) { call_user_func($this->callback, $line); } if ($line === "\r") { $body = true; } return strlen($line); }}function myCallback($data) { print $data;}$myCls = new myClass();$myCls->myFunction();
Source: stackoverflow.com
Answered By: Philippe Gerber
This warning message usually appears in PHP when the first argument passed to the call_user_func()
function is not a valid callback.
A callback is a function or method that can be passed as an argument to another function or method, and can be called later in the code execution.
To resolve the warning message, you should ensure that the first argument passed to call_user_func()
is a valid callback. This can be a function name (string), an array containing an object and a method name, or a closure.
Here is an example of a valid callback using a function name:
phpfunction my_callback_function() {
echo "Hello World!";
}
call_user_func('my_callback_function');
Here is an example using an array containing an object and a method name:
phpclass MyClass {
public function myMethod() {
echo "Hello World!";
}
}
$obj = new MyClass();
call_user_func(array($obj, 'myMethod'));
And here is an example using a closure:
php$myClosure = function() {
echo "Hello World!";
};
call_user_func($myClosure);
Make sure that you are passing a valid callback to call_user_func()
, and the warning message should disappear.
Comments
Post a Comment