2014-11-21 89 views
1

我得到這個錯誤,我不能找出什麼問題。我的代碼是

class Example{ 
    public function get_lang() 
     { 
      $jezik = get_option('jezik'); 
        switch ($jezik) { 
         case $jezik == 'rs_RS': 
         $drzava = 'NazivSrb'; 
         break; 
         case $jezik == 'ro_RO': 
         $drzava = 'NazivRo'; 
         break; 
         case $jezik == 'uk_UK': 
         $drzava = 'NazivRu'; 
         break; 
        } 
      return $drzava;   
     } 

    static public function ExecuteSql($where_criteria=NULL) { 
      global $wpdb; 

        $drzva = $this->get_lang(); 

      $upit = " 
          SELECT ID, Naziv, $drzava, PhoneCode, Kod 
        FROM wp_drzava"; 
      if ($where_criteria) 
       $upit .=" WHERE ". $where_criteria ; 
      $upit .= " GROUP BY Kod"; 
      //echo $upit; 
      return $wpdb->get_results($upit); 
     } 

{ 

基本上我嘗試使用get_lang方法的返回值,並將其保存到其他方法的變量,並將其傳遞給查詢。 但我得到一個錯誤在這行

$drzva = $this->get_lang(); 

回答

1

不能使用$thisstatic方法..如果你想用同一類方法中static方法

self::get_lang(); 

使用self關鍵字編輯:get_lang()應該是靜態方法,如果你沒有使用方法內部的類屬性。

+0

在這種情況下,get_lang()應該是靜態的。 – segarci 2014-11-21 10:50:12

+1

您可以調用像'self :: callmethod'這樣的非靜態方法,而另一種方法('get_lang()')不會在方法內使用'$ this'。靜態方法是獨立的,你可以調用沒有創建類對象 – Girish 2014-11-21 10:54:20

+0

get_lang()靜態方法可以通過公共ExecuteSql方法訪問,self ::也可以工作 – 2014-11-21 10:57:41

0

不能使用靜態公共職能$this$this在它不存在)。

爲了解決這個問題,使用:

$example = new Example; 
$drzva = $example->get_lang(); 
相關問題