1

我有这个类,它做了很多事情,但这是它的简化版本,所以你可以看到我的问题是什么:

class WC_Product_Variation extends WC_Product {

    public $cliente_a="";

    public function __construct( $variation, $args = array() ) {

        //does some stuff to other variables

        if ( isset( $this->product_custom_fields['_cliente_a'][0] ) ) {
            $this->variation_has_cliente_a = true;
            $this->cliente_a               = $this->product_custom_fields['_cliente_a'][0];
        }
    }
    public function clientPrice($c){
        $aum=0;
        if($c=='customer'){$aum=$this->$cliente_a;}
        /*This should do more stuff but since 
        the basics aren't working I simplified to this*/
        return $aum;
    }
}

这个类来自 Woocommerce,如果这改变了任何东西,我在 wordpress 中使用它,但基本上我正在做的是:

 echo $_product->clientPrice('customer');

这什么也不返回,甚至不返回 0。另外,如果我这样做

 echo $_product->cliente_a;

我得到了正确的值,即 20。wtf?

编辑:

我在问题中的变量名称有错字,但这不是我的代码中的问题。

4

3 回答 3

3

像这样访问成员变量:

$this->cliente_c

不是这个:$this->$cliente_c

于 2013-08-02T07:51:54.373 回答
1

您的 clientPrice 似乎返回cliente_c,而您的其他呼叫返回cliente_a。那些很可能是不同的

 $aum=$this->$cliente_c;

应该是

$aum=$this->cliente_c;

或者

$aum=$this->cliente_a;
于 2013-08-02T07:52:00.043 回答
0

函数clientPrice返回$this->cliente_c,因此与$_product->cliente_a

于 2013-08-02T07:54:38.830 回答