Panggil pembolehubah di luar fail pemalam dan dalam fail fungsi
P粉798343415
P粉798343415 2023-07-17 18:42:42
0
1
459

Saya menggunakan plugin perbandingan WooCommerce YITH dan saya akan meletakkan fail yang mengandungi kod yang berkaitan dengan masalah saya:

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();

Contohnya: $this->products_list digunakan, jika saya mahu memanggilnya di luar fail dan dalam fail fungsi, ia adalah seperti ini: $products_list=isset($_COOKIE[get_COOKIE_name()])? json_decode(wp_unslash($_COOKIE[get_COOKIE_name()]): array();

Saya harap anda faham maksud saya. Jika ini adalah soalan pemula, sila jangan diss kerana tidak semua orang profesional seperti anda. Tambahan pula, saya menghabiskan banyak masa untuk menyelesaikan masalah ini. Saya tidak cuba bertanya soalan cepat di sini untuk mencari jawapan pantas.

P粉798343415
P粉798343415

membalas semua(1)
P粉262113569

您的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、插件和主题代码的交互方式也是如此。我希望这个答案能为您指明一个有用的方向。


Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan