Функции обратного вызова
Войти

Функции обратного вызова

Функции обратного вызова
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php 

// Пример callback-функции
function my_callback_function() {
    echo 
'hello world!';
}

// Пример callback-метода
class MyClass {
    static function 
myCallbackMethod() {
        echo 
'Hello World!';
    }
}

// Type 1: Простой callback
call_user_func('my_callback_function');

// Type 2: Вызов статического метода класса
call_user_func(array('MyClass''myCallbackMethod'));

// Type 3: Вызов метода класса
$obj = new MyClass();
call_user_func(array($obj'myCallbackMethod'));

// Type 4: Вызов статического метода класса (С PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Type 5: Вызов относительного статического метода (С PHP 5.3.0)
class {
    public static function 
who() {
        echo 
"An";
    }
}

class 
extends {
    public static function 
who() {
        echo 
"Bn";
    }
}

call_user_func(array('B''parent::who')); // A

// Type 6: Объекты реализующие __invoke могут быть использованы как 
//callback (С PHP 5.3)
class {
    public function 
__invoke($name) {
        echo 
'Hello '$name"n";
    }
}

$c = new C();
call_user_func($c'PHP!');

?>

Ссылки по теме:

  1. 1. php.net/
  2. 2. php.net/
Теги:
php