繁体   English   中英

PHP中的可变范围问题

[英]Variable scope issue in PHP

因此,我有一个类,在该类上添加了不同的方法来自定义Wordpress主题。 其中一种方法称为limitExcerptToWords ,它的作用是限制WP返回的摘录的长度。

在WP中,您可以通过向钩子添加函数来实现此功能,该函数可以表示为字符串(函数名称),或者在我的情况下,可以表示为匿名函数。 此函数返回的值将是摘录的长度。

我的代码如下所示:

class XX {
   /* ... */
   function limitExcerptToWords($numWords) {
       add_filter( 'excerpt_length', function (){
            return $numwords;
        });
   }
   /* ... */
}

然后,我想调用该方法,例如: $OBJ->limitExcerptToWords(10);

我在JS中更加了解,在JSut上该代码可以正常工作,但是PHP具有不同的方式来处理范围,结果,我的匿名函数中的代码在范围内没有$numWords

我一直在阅读PHP文档,但无法找到一种以一种优雅的方式使其工作的方法。

你能帮我吗? :3

谢谢!

如果要在anom函数中使用它,则需要与use一起传递它

class XX {
   /* ... */
   function limitExcerptToWords($numWords) {
       add_filter( 'excerpt_length', function () use($numWords) {
            return $numwords;
        });
   }
   /* ... */
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM