get_class_methods în PHP

Returnează lista numelor metodelor unei clase sau ale unui obiect.

Sintaxă
get_class_methods(object|string $object_or_class): array

Ce face get_class_methods

get_class_methods listează metodele, inclusiv cele moștenite și cele statice. Din afara clasei vezi doar metodele publice; din interiorul ei, toate.

Este util la depanare sau când explorezi o clasă dintr-o bibliotecă. Pentru informații complete (parametri, tipuri, vizibilitate) folosește ReflectionClass.

Parametri

Parametru Descriere
$object_or_class Obiectul sau numele clasei.

Ce returnează

Un tablou cu numele metodelor.

Exemple

Exemplul 1: Metodele vizibile din exterior

<?php
class Document
{
    public function titlu() {}
}

class Factura extends Document
{
    public function __construct() {}
    public function total() {}
    public static function dinTablou() {}
    private function calculeazaTva() {}
}

print_r(get_class_methods("Factura"));

Rezultat

Array
(
    [0] => __construct
    [1] => total
    [2] => dinTablou
    [3] => titlu
)

Exemplul 2: Metodele publice ale unei clase din PHP

<?php
$metode = get_class_methods("ArrayObject");
echo count($metode) . " metode, de exemplu: " . implode(", ", array_slice($metode, 0, 5));

Rezultat

25 metode, de exemplu: __construct, offsetExists, offsetGet, offsetSet, offsetUnset

Greșeli frecvente

  • Cauți o metodă cu in_array("total", get_class_methods($x)). Comparația ține cont de majuscule, dar numele de metode nu. Folosește method_exists.

Comenzi înrudite

  • method_exists: Verifică dacă o clasă sau un obiect are o metodă cu un anumit nume.
  • get_class_vars: Returnează proprietățile declarate ale unei clase, cu valorile lor implicite, fără să creezi un obiect.
  • get_class / get_parent_class: Returnează numele clasei unui obiect (get_class) sau numele clasei părinte (get_parent_class).