class myClass { $ myVariable = 'myCallback';PHP/Portée/Rappel
function myFunction() {
$body = false;
$callback = $this->myVariable;
function test($handle, $line) {
global $body, $callback;
if ($body) {
call_user_func($callback, $line);
}
if ($line === "\r\n") {
$body = true;
}
return strlen($line);
}
...
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'test');
...
}
}
function myCallback($data) {
print $data;
}
$myCls = new myClass();
$myCls->myFunction();
Attention: call_user_func() [function.call-user-func]: Le premier argument devrait être un rappel valide!
Ma valeur de rappel $ est vide, comment puis-je résoudre ce problème? Restriction: la fonction myCallback ne peut pas être modifiée!
Je n'aime pas ça ** x.9 ** chiffre, +1 bonne réponse :) – Sarfraz
Vous ne pouvez pas définir les fermetures sans les affecter à une variable – Gordon
@Gordon: Bon point, vous avez raison, au moins quand vous voulez utiliser 'use', vous devez l'assigner à une variable. Je reçois une erreur de syntaxe sinon (ou je fais quelque chose de stupide;)) –