从Ajax获取父类php的变量

从Ajax获取父类php的变量,php,ajax,Php,Ajax,我参加过以下课程: 抽象类实用工具,包含一般功能(例如数据库连接) 类get_conf,它返回我几乎在任何地方都需要的主要变量(例如语言、登录状态) 类get_data来处理对数据库的查询并返回结果 这在我的索引文件中: $init = new get_conf(); $lang = $init->lang; $status = $init->status; (...) $config = new get_data($lang,$status); 这是类get\u data

我参加过以下课程:

  • 抽象类
    实用工具
    ,包含一般功能(例如数据库连接)
  • get_conf
    ,它返回我几乎在任何地方都需要的主要变量(例如语言、登录状态)
  • get_data
    来处理对数据库的查询并返回结果
这在我的索引文件中:

$init = new get_conf();

$lang = $init->lang;
$status = $init->status;
(...)

$config = new get_data($lang,$status);
这是类
get\u data
的构造

class get_data extends utility {

    public function __construct($lang = NULL,$status = NULL) {
        $this->lang = $lang;
        $this->status = $status;
    }

...
一切都很好,但我不知道在ajax调用期间最好如何处理。 在实例化我需要的类之后

$config = new get_data();
获取
$lang
$status
的最佳方式是什么?现在我再次调用定义其值的函数-
get\u language()
check\u login()

但是有更好的办法吗?我应该使用会话吗?对我来说,每次调用这些函数都不太好,尤其是当我在同一个页面中有多个ajax调用时

编辑:对不起,是我的错,因为我用错误的方式表达了这个问题。我需要的是从Ajax和ok中获取变量,但我需要在类中使用它们

例如,在类
get_data
中,我有以下函数:

public function get_category($id_cat) {
    $q = "SELECT category FROM p_category WHERE id = '".$id_cat."' AND code = ".$this->lang.";
    return $this->exe_query($q);
}
因为我从Ajax调用这个函数,而不是从Ajax调用,这取决于具体情况,
$this->lang
只有在我从Ajax请求中调用它时才被定义。即使使用静态var也不能与Ajax一起使用。

试试:

class get_data extends utility {
    static $lang = null;
    static $status = null;
    public function __construct($lang = NULL,$status = NULL) {
        if($lang !== null){
            self::$lang = $lang;
        }
        if($status !== null){
            self::$status = $status;
        }
    }
}

$config = new get_data($lang,$status);
echo get_data::$status;
echo get_data::$lang;

在get_数据类中编写以下成员函数:

public function getCVar($var){
  $c = new get_data();
  eval('$tmp = $c->'.strtolower($var).';');
  return $tmp;
  }
然后您可以获得如下所示的变量值:

echo get_data::getCVar('lang');
echo get_data::getCVar('status')

谢谢你,我认为它工作得很好!我刚刚收到通知:未定义属性:get_data::$lang,在类的其余部分我有$this->lang,$this->status,但我想我应该用self::lang和self::status替换所有这些,对吗?是的。通过自身导致的静态属性::