没有理由拥有此功能。如果这是您遇到的问题,那么您使用的过滤器不正确。
首先,$collection
随时可以检查。如果需要查看筛选后的集合包含的内容,只需检查$collection
传递给回调的变量。您不需要任何其他功能。
但你甚至不需要这样做。如果使用过滤器add_filter()
, 然后,您有责任知道哪些类型的值将传递给过滤器回调,以及在另一端预期的值,这是使用apply_filters()
记录这些期望是什么。
例如,如果开发人员(或您自己)提供过滤器my_collection
如果要将自己的字符串添加到字符串列表中,则在任何情况下都不应添加字符串以外的任何内容,并且必须返回一个数组,因为此筛选器和返回值的所有其他用户都需要一个字符串数组。
过滤器是一个API,它们应该定义并记录输入和输出的期望。任何偏离此值的内容都应抛出错误。
在您的示例中:
$collection = apply_filters( \'my_collection\', [] );
$string = \'\';
foreach( $collection as $collection_item ) {
$string += $collection_item;
}
如果
$collection
不是字符串数组,则筛选器使用不正确,错误是预期行为。如果您在主题或插件中提供此过滤器供其他开发人员使用,那么记录所需内容很重要,这样开发人员就不会出现此错误。
让我们举一个真实的例子。这个post_class
filter是一个核心WordPress过滤器,用于向帖子添加类。过滤值在文档中定义如下:
$classes
(字符串[])一个post类名数组。
这意味着您的回调函数应该期望$classes
是字符串数组,回调也必须返回字符串数组。其他任何东西都会破裂。没有理由检查添加了哪些值$classes
因为它甚至应该是一个字符串数组。