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)
PHP.mk документација
get_class_methods
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
function.get-class-methods.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
function.get-class-methods.php
get_class_methods
Референца за `function.get-class-methods.php` со подобрена типографија и навигација.
get_class_methods
(PHP 4, PHP 5, PHP 7, PHP 8)
get_class_methods — Ги добива имињата на методите на класата
= NULL
Ги добива имињата на методите на класата.
Параметри
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 години
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