mixed обозначава, че даден параметър може да приема множество (но не непременно всички) типове.
gettype() например приема всички типове в PHP, докато str_replace() приема само низове и масиви.
number обозначава, че параметърът може да бъде или цяло (integer) или плаващо (float) число.
Някои функции като call_user_func() или usort() приемат като параметър потребителски-дефинирани функции за обратно извикване. Последните могат да бъдат не само прости функции, но също и методи на обекти, включително и статични такива.
Функцията в PHP просто се предава с името си под формата на низ. Можете да предавате коя да е вградена или потребителски-дефинирана функция. Забележете, че езикови конструкции като array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset() не могат да бъдат извикани с обратно извикване.
Метод на инстанцииран обект се предава като масив, съдържащ обекта като елемент с индекс 0 и името на метода като елемент с индекс 1.
Статичните методи на клас също могат да бъдат предавани, без да е необходимо да се инстанциира обект от този клас, чрез предаването на името на класа, вместо обекта, за елемента с индекс 0.
Освен обикновените потребителски-дефинирани функции, create_function() може да бъде изполозвана, за да се създаде анонимна функция за обратно извикване.
Example #1 Примери за функции с обратно извикване
<?php
// Примерна функция за обратно извикване
function my_callback_function() {
echo 'hello world!';
}
// Примерен метод за обратно извикване
class MyClass {
static function myCallbackMethod() {
echo 'Hello World!';
}
}
// Тип 1: Просто извикване
call_user_func('my_callback_function');
// Тип 2: Извикване на статичен метод от клас
call_user_func(array('MyClass', 'myCallbackMethod'));
// Тип 3: Извикване на метод от обект
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));
// Тип 4: Извикване на статичен метод от обект (От PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');
// Тип 5: Относително извикване на статичен метод (От PHP 5.3.0)
class A {
public static function who() {
echo "A\n";
}
}
class B extends A {
public static function who() {
echo "B\n";
}
}
call_user_func(array('B', 'parent::who')); // A
?>
Забележка: В PHP4, ще трябва да използвате референция, за да създадете обратно извикване, което да сочи към самия обект, а не към копие от него. За повече информация вижте Референции.
void във връщания тип означава, че връщаната стойност е безполезна. void в списъка с параметри означава, че функцията не приема никакви параметри.
$... в прототипа на функция означава и така нататък. Това име на променлива се използва, когато функцията може да приеме неограничен брой аргументи.