get_class_methods
get_class_methods($object_or_class)
Zwraca tablicę nazw metod klasy, łącznie z odziedziczonymi i statycznymi. Z zewnątrz tylko publiczne, wewnątrz klasy także chronione i prywatne.
Parametry
- $object_or_class – obiekt albo nazwa klasy.
Przykłady
class Cart {
public function add($id) {}
public function total() {}
protected function recalculate() {}
private function save() {}
public static function fromItems() { return new self(); }
public function allMethods() { return get_class_methods($this); }
}
$m = get_class_methods("Cart");
sort($m);
echo implode(", ", $m); // add, allMethods, fromItems, total
// wewnątrz klasy widzi także metody chronione i prywatne
$v = (new Cart())->allMethods();
sort($v);
echo implode(", ", $v); // add, allMethods, fromItems, recalculate, save, total
// method_exists sprawdza pojedynczą metodę (bez względu na widoczność)
var_dump(method_exists("Cart", "save")); // bool(true)
Na co uważać
- Wynik zależy od miejsca wywołania: z zewnątrz tylko metody publiczne, wewnątrz klasy także chronione i prywatne.
- Kolejność metod różni się między wersjami PHP (przy metodach z traitów). Gdy kolejność jest ważna, posortuj tablicę.
- Klasa, która nie istnieje: PHP 7.4 zwraca null, PHP 8 rzuca wyjątek TypeError.
Powiązane funkcje:
method_exists()
get_class_vars()
get_object_vars()
get_class()