我有这个类,它做了很多事情,但这是它的简化版本,所以你可以看到我的问题是什么:
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?
编辑:
我在问题中输入了变量名称,但这不是我代码中的问题。
答案 0 :(得分:3)
像这样访问成员变量:
$this->cliente_c
不:$this->$cliente_c
答案 1 :(得分:1)
您的clientPrice似乎返回cliente_c
,而您的另一个调用返回cliente_a
。那些很可能是不同的
$aum=$this->$cliente_c;
shoudl要么是
$aum=$this->cliente_c;
或
$aum=$this->cliente_a;
答案 2 :(得分:0)
函数clientPrice
返回$this->cliente_c
,因此与$_product->cliente_a