범위

2013-08-02 4 views
1

I가이 클래스, 그것은 여러 가지 일을하지만, 내 문제가 무엇인지 볼 수 있도록이 그것의 단순화 된 버전입니다 :범위

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에서 경우, 그 아무것도 변경하고, 나는 워드 프레스에 사용하고 있지만, 기본적으로 내가 무엇을하고 있어요 것은 이것이다 :

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

내가

echo $_product->cliente_a; 
을 할 경우 즉, 또한 심지어 0 아무것도 반환하지 않습니다

적절한 값을 얻습니다. 20 wtf입니까?

편집 :

나는 질문에서 변수의 이름에 오타가 있었다,하지만 내 코드에 문제가 아니에요. 이 같은

답변

3

액세스 멤버 변수 :

$this->cliente_c 

하지이 : $this->$cliente_c

+1

$_product->cliente_a과 동일하지 않습니다 shoudl 사람들은 아주 잘 다를 수 있습니다 나는 그 $ 기호에 눈이 멀었고 나는 열매를 맺고 있었다. –

+1

+1 잘 발견했습니다 –

1

당신 clientPrice은 cliente_c와 다른 전화가 cliente_a를 반환 반환 것으로 보인다.

$aum=$this->$cliente_c; 

clientPrice 반환 $this->cliente_c 중 하나

$aum=$this->cliente_c; 

또는

$aum=$this->cliente_a; 
0

기능 할 수있어 감사

+0

우리는'WC_Product'에 무엇이 들어 있는지 알지 못합니다 – DanFromGermany

+0

예, 알겠습니다. 오타입니다. 나는 세 개의 변수 cliente_a b와 c를 가지고 있는데, 단순함을 위해서 복사하고 붙여 넣었습니다. 왜냐하면 $ c 안에있는 값에 따라 다른 값을 할당해야하기 때문입니다. 그러나 세 변수 모두 기본적으로 동일합니다. –

+0

또한 WC_Product는 다른 Woocommerce 클래스입니다. , 그들은 둘 다 여러 가지 방법을 가지고, 이것은 내가 직접 추가 한 부분입니다. –