搜索

首页  >  问答  >  正文

在插件文件外部和函数文件内部调用变量

我使用YITH WooCommerce比较插件,我会把包含与我的问题相关的代码的文件:

https://file.io/StHr7KBJBdxF

$current_cat变量已设置为等于:public$current_cat=array()$this->current_cat已被用于代码的某些部分,如何在文件外和函数文件中调用$this->current_cat?

class YITH_Woocompare_Frontend_Premium extends YITH_Woocompare_Frontend {

    …

    /**
     * The list of current cat inside the comparison table
     *
     * @since 1.0.0
     * @var array
     */
    public $current_cat = array();

例如:使用了$this->products_list;,如果我想在文件外和函数文件中调用它,它是这样的:$products_list=isset($_COOKIE[get_COOKIE_name()])?json_decode(wp_unslash($_COOKIE[get_COOKIE_name()]):数组();

我希望你能理解我的意思。如果这是一个初学者的问题,请不要diss,因为不是每个人都像你一样专业。此外,我花了很多时间来解决这个问题。我并不是想在这里快速提问以快速找到答案。

P粉798343415P粉798343415501 天前424

全部回复(1)我来回复

  • P粉262113569

    P粉2621135692023-07-18 09:50:22

    您的current_cat是由您的插件定义的类的公共属性。

    在该类的函数中,代码可以使用$this->current_cat来访问该属性。为什么?在该类的代码中,$this是指向该类当前实例的引用。->对象操作符告诉php在$this内查找。

    在该类的代码之外,您可以通过以下方式访问公共属性。

    $my_object = new PluginClass();
    $cat = $my_object->current_cat;
    您正在尝试执行示例的第二行中显示的操作。要执行此操作,您需要访问第一行返回的new PluginClass()变量。不同的插件有不同的方法来使这种类型的信息可用于主题代码(functions.php)。必须查看插件的代码以确定如何执行此操作,或查看文档,或咨询插件的支持论坛。

    恕我直言,解释php类的工作原理对于Stack Overflow的答案来说太复杂了。解释WordPress、插件和主题代码的交互方式也是如此。我希望这个答案能为您指明一个有用的方向。


    回复
    0
  • 取消回复