从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替换所有这些,对吗?是的。通过自身导致的静态属性::