PHP.mk документација

get_class_methods

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.get-class-methods.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.get-class-methods.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
get_class_methods

Референца за `function.get-class-methods.php` со подобрена типографија и навигација.

function.get-class-methods.php

get_class_methods

(PHP 4, PHP 5, PHP 7, PHP 8)

get_class_methodsГи добива имињата на методите на класата

= NULL

get_class_methods(object|string $object_or_class): array

Ги добива имињата на методите на класата.

Параметри

object_or_class

Името на класата или инстанца на објект

Вратени вредности

Враќа низа од имиња на методи дефинирани за класата специфицирана од object_or_class.

Дневник на промени

Верзија = NULL
8.0.0 На object_or_class параметарот сега прифаќа само објекти или валидни имиња на класи.

Примери

Пример #1 get_class_methods() example

<?php

class myclass {
// constructor
function __construct()
{
return(
true);
}

// method 1
function myfunc1()
{
return(
true);
}

// method 2
function myfunc2()
{
return(
true);
}
}

$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());

foreach (
$class_methods as $method_name) {
echo
"$method_name\n";
}

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

__construct
myfunc1
myfunc2

Види Исто така

  • get_class() - Враќа го името на класата на објект
  • get_class_vars() - Ги добива стандардните својства на класата
  • get_object_vars() - Ги добива својствата на дадениот објект

Белешки од корисници 4 белешки

fschmengler at sgh-it dot eu
пред 16 години
It should be noted that the returned methods are dependant on the current scope. See this example:

<?php
class C
{
    private function privateMethod()
    {
        
    }
    public function publicMethod()
    {
        
    }
    public function __construct()
    {
        echo '$this:';
        var_dump(get_class_methods($this));
        echo 'C (inside class):';
        var_dump(get_class_methods('C'));
    }
}
$c = new C;
echo '$c:';
var_dump(get_class_methods($c));
echo 'C (outside class):';
var_dump(get_class_methods('C'));
?>

Output:

$this:
array
  0 => string 'privateMethod' (length=13)
  1 => string 'publicMethod' (length=12)
  2 => string '__construct' (length=11)

C (inside class):
array
  0 => string 'privateMethod' (length=13)
  1 => string 'publicMethod' (length=12)
  2 => string '__construct' (length=11)

$c:
array
  0 => string 'publicMethod' (length=12)
  1 => string '__construct' (length=11)

C (outside class):
array
  0 => string 'publicMethod' (length=12)
  1 => string '__construct' (length=11)
polarglow06 at gmail dot com
пред 10 години
I have created a very simple test runner using this function

function get_bar($text) {
    $bar = "";
    for($i=1; $i<=strlen($text); $i++) {
        $bar .= "=";
    }
    return $bar;
}
class Tester {
    function __construct() {
        $this->run_tests();
    }
    // run the tests
    function run_tests() {
        print("Tester by Minhajul Anwar \n");
        $class = get_class($this);
        $test_methods = preg_grep('/^test/', get_class_methods($this));
        foreach($test_methods as $method) {
            $start_rep = "test: $class::$method";
            $bar = get_bar($start_rep);
            print("\n$start_rep\n$bar\n");
            $this->$method();
            print("\n");
        }
    }
}

now you just need to write your test class with tegst methods prefixed by 'test', and then just instantiate object of that test class of your, all those tests methods will get run automatically
The drawback is: your test methods must not accept any arguments

an example:
require '../autoload.php';
register_autoload_paths(realpath('./'));

class Test_Test extends Tester {
    function test_something() {
        print("method got executed");
    }
    function testAnotherThing() {
    print("another test method");
    }
}

$Test = new Test_Test();
tomfelker на gmail точка com
19 години пред
Note that this function will answer both class AND instance methods ("class methods" are called "static" in PHP). Sort of a little "trap" for people who have in-depth experience with the OO terminology :-)
faizanakram99+php at gmail dot com
пред 1 година
It is worth noting that get_class_methods($closure) doesn't return __invoke method even though it exists and is documented too.

See https://3v4l.org/VKjAF
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.