1--TEST-- 2ReflectionParameter::isDefaultValueConstant() && getDefaultValueConstantName() 3--FILE-- 4<?php 5 6define("CONST_TEST_1", "const1"); 7 8function ReflectionParameterTest($test1=array(), $test2 = CONST_TEST_1, $test3 = CASE_LOWER) { 9 echo $test; 10} 11$reflect = new ReflectionFunction('ReflectionParameterTest'); 12foreach($reflect->getParameters() as $param) { 13 if($param->getName() == 'test1') { 14 var_dump($param->isDefaultValueConstant()); 15 } 16 if($param->getName() == 'test2') { 17 var_dump($param->isDefaultValueConstant()); 18 } 19 if($param->isDefaultValueAvailable() && $param->isDefaultValueConstant()) { 20 var_dump($param->getDefaultValueConstantName()); 21 } 22} 23 24class Foo2 { 25 const bar = 'Foo2::bar'; 26} 27 28class Foo { 29 const bar = 'Foo::bar'; 30 31 public function baz($param1 = self::bar, $param2=Foo2::bar, $param3=CONST_TEST_1) { 32 } 33} 34 35$method = new ReflectionMethod('Foo', 'baz'); 36$params = $method->getParameters(); 37 38foreach ($params as $param) { 39 if ($param->isDefaultValueConstant()) { 40 var_dump($param->getDefaultValueConstantName()); 41 } 42} 43?> 44==DONE== 45--EXPECT-- 46bool(false) 47bool(true) 48string(12) "CONST_TEST_1" 49string(10) "CASE_LOWER" 50string(9) "self::bar" 51string(9) "Foo2::bar" 52string(12) "CONST_TEST_1" 53==DONE== 54