致命错误:在不在对象上下文中时使用$ this

时间:2014-11-21 10:42:32

标签: php class

我收到了这个错误,我无法确定是什么问题。我的代码是

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();

2 个答案:

答案 0 :(得分:1)

如果要在$this方法中使用相同的类方法,则无法在static方法中使用self ..使用static关键字

self::get_lang();

编辑: get_lang()应该是静态方法,如果你没有在方法中使用类属性。

答案 1 :(得分:0)

您不能在静态公共函数中使用$this$this不存在)。

要解决此问题,请使用:

$example = new Example;
$drzva = $example->get_lang();