mirror of
https://github.com/php/php-src.git
synced 2024-10-02 23:36:16 +00:00
65 lines
1.1 KiB
Plaintext
65 lines
1.1 KiB
Plaintext
|
--TEST--
|
||
|
ReflectionMethod::getStaticVariables()
|
||
|
--SKIPIF--
|
||
|
<?php extension_loaded('reflection') or die('skip'); ?>
|
||
|
--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) {
|
||
|
}
|