mirror of
https://github.com/php/php-src.git
synced 2024-12-17 22:09:12 +08:00
64 lines
1.1 KiB
PHP
64 lines
1.1 KiB
PHP
--TEST--
|
|
ReflectionMethod::getStaticVariables()
|
|
--FILE--
|
|
<?php
|
|
|
|
class TestClass {
|
|
public function foo() {
|
|
static $c;
|
|
static $a = 1;
|
|
static $b = "hello";
|
|
$d = 5;
|
|
}
|
|
|
|
private function bar() {
|
|
static $a = 1;
|
|
}
|
|
|
|
public function noStatics() {
|
|
$a = 54;
|
|
}
|
|
}
|
|
|
|
echo "Public method:\n";
|
|
$methodInfo = new ReflectionMethod('TestClass::foo');
|
|
var_dump($methodInfo->getStaticVariables());
|
|
|
|
echo "\nPrivate method:\n";
|
|
$methodInfo = new ReflectionMethod('TestClass::bar');
|
|
var_dump($methodInfo->getStaticVariables());
|
|
|
|
echo "\nMethod with no static variables:\n";
|
|
$methodInfo = new ReflectionMethod('TestClass::noStatics');
|
|
var_dump($methodInfo->getStaticVariables());
|
|
|
|
echo "\nInternal Method:\n";
|
|
$methodInfo = new ReflectionMethod('ReflectionClass::getName');
|
|
var_dump($methodInfo->getStaticVariables());
|
|
|
|
?>
|
|
--EXPECT--
|
|
Public method:
|
|
array(3) {
|
|
["c"]=>
|
|
NULL
|
|
["a"]=>
|
|
int(1)
|
|
["b"]=>
|
|
string(5) "hello"
|
|
}
|
|
|
|
Private method:
|
|
array(1) {
|
|
["a"]=>
|
|
int(1)
|
|
}
|
|
|
|
Method with no static variables:
|
|
array(0) {
|
|
}
|
|
|
|
Internal Method:
|
|
array(0) {
|
|
}
|