繁体   English   中英

无法破解OOP PHP链接类->属性->方法

[英]Cant crack OOP PHP chaining class->property->method

经过数小时的尝试和失败后,我在这里寻求任何我能得到的帮助。 我相信对于熟悉 OOP 的人来说这很简单,但我只是找不到任何文档来帮助我解决这个问题,并且我自己也无法解决它。

我有无法更改的代码: $woocommerce_wpml->multi_currency->get_currency_codes(); 我需要为它创建一个类,以便它返回我选择的值。

我知道您可以创建类 ($woocommerce_wpml = new xyClass;) 并获取其属性 ($woocommerce_wpml->multi_currency)。

我知道您可以在该类中创建方法并运行它($woocommerce_wpml->get_currency_codes();)

我知道你可以链接方法,但我就是不知道如何链接类->属性->方法。 或者它不是财产,我看错了?

$woocommerce_wpml 是类吗? multi_currency 应该是财产权吗? get_currency_codes() 是正确的方法吗?

我如何链接这些(类->属性->方法)?

我失败的代码:

class testClass {
  public $multi_currency;
    function __construct($multi_currency) {
      $this->multi_currency = $multi_currency;
    }

  public function get_currency_codes() {
      return $this->multi_currency;
    }

}

$woocommerce_wpml = new testClass(["CZK","EUR"]);

var_dump( $woocommerce_wpml->multi_currency); //array(2) { [0]=> string(3) "CZK" [1]=> string(3) "EUR" } 
var_dump($woocommerce_wpml->get_currency_codes()); //array(2) { [0]=> string(3) "CZK" [1]=> string(3) "EUR" }
echo $woocommerce_wpml->multi_currency->get_currency_codes(); //Fatal error: Uncaught Error: Call to a member function get_currency_codes() on array in ...

对象属性可以是对对象的引用。


$myclass->property = new OtherClass();

echo $myclass->property->other_class_property;

//or access method 
$myclass->property->other_class_method();

暂无
暂无

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

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