确定内部php函数的可选参数的默认值

  • 本文关键字:参数 默认值 函数 内部 php php
  • 更新时间 :
  • 英文 :


我想确定内部PHP函数的可选参数的默认设置。作为htmlspecialchars函数的一个示例。我的第一次尝试:

$rf = new ReflectionFunction('htmlspecialchars');
$parameters = $rf->getParameters();
//1 => ReflectionParameter::__set_state(array('name' => "quote_style",)),
$defaultFlags = $parameters[1]->getDefaultValue();
//Fatal error: Uncaught ReflectionException:
// Cannot determine default value for internal functions

我希望结果是专门为htmlspecialchars一个整数。ENT_COMPAT为2,ENT_QUOTES|ENT_SUBSTITUTE|ENT_HTML401(PHP8.1(为11。我希望避免使用基于PHP版本的区分大小写的解决方案。

您的代码在PHP 8.0和8.1 上运行良好

请注意,它旨在为8.0 之前的任何PHP版本的文档中所述的内置函数抛出错误

您可以在此之前调用isDefaultValueAvailable以避免抛出错误(或在try-catch块中换行(:

$rf = new ReflectionFunction('htmlspecialchars');
$parameters = $rf->getParameters();
$defaultFlags = $parameters[1]->isDefaultValueAvailable()
? $parameters[1]->getDefaultValue()
: null;
var_dump($defaultFlags);

示例

最新更新