从Ajax获取父类php的变量

时间:2014-09-05 04:18:25

标签: php ajax

我是以下课程:

  • 抽象类utility,包含常规函数(例如数据库连接)
  • class get_conf,它返回几乎所有地方都需要的主要变量(例如语言,登录状态)
  • class get_data来处理对数据库的查询并返回结果。

这是在我的索引文件中:

$init = new get_conf();

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

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

这是类get_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_language()check_login()

但还有更好的方法吗?我应该使用会话吗?每当这些功能发生时,我都不会打电话,特别是当我在同一页面中有多个ajax调用时。

编辑:对不起,我的错是因为我以错误的方式提出了问题。我需要的是从Ajax获取变量并确定,但我需要在类

中使用它们

例如,在课程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调用此函数而不是,根据情况,$this->lang仅在我从Ajax请求中调用它时才定义。即使使用静态var也无法使用Ajax。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

试一试:

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;