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()