A. 自己用thinkphp做微信接口类文件,遇一个问题,GET获取到的token,如何将这个变量传递到实例化的类里面
classIndexActionextendsAction{
publicfunctionindex(){
$token=D("wx_token")->field("add_ip",true)->select();
foreach($tokenas$key=>$v){
if($v['expire_time']-300<time()){
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$v['appid']}&secret={$v['secret']}";
$res=file_get_contents($url,false);
$this->getAccessToken($v['id'],$res);
}else{
$date=date("Y-m-dH:i:s");
echo"{$date}_____noexpire ";
}
}
}
privatefunctiongetAccessToken($token,$res){
$sign=false;
$json=json_decode($res);
$data['id']=$token;
$data['access_token']=$json->access_token;
$data['expire_time']=time()+7200;
$data['add_time']=time();
$data['add_ip']='127.0.0.1';
$db=D("wx_token");
$db->startTrans();
if($db->save($data)){
$db->commit();
$sign=true;
}else{
$db->rollback();
$sign=false;
}
return$sign;
}
}
再创建个数据表,保存就好了,整个定时任务,定时去获取比较好。
B. 在php中如何设置类的属性,如何调用类的方法
PHP访问类的属性、方法使用箭头语法(->)。这里我给你一个例子供你参考:
<?php
classMyClass{//定义MyClass类
public$name;//定义了一个公有属性
protected$_age;//定义了一个保护属性
private$_email;//定义了一个私有属性
publicfunctionmy_method(){//定义my_method方法
}
protectedfunction_my_method2(){//定义_my_method2方法
}
}
$obj=newMyClass;//实例化
$obj->name='noname';//设置name属性
$obj->_age=12;//这是错误的,不能设置保护属性
$obj->address='KingStreet.'//设置一个未声明的属性是允许的,效果和公有属性类似,但未赋值前不能使用。
$obj->my_method()//调用公有方法
$obj->_my_method2();//这是错误的,不能调用保护方法
你需要理解继承、公有、保护和私有的概念。
继承:子类继承父类的公有、保护属性和方法。
公有:类的实例可以访问的属性和方法。
保护:只能在类的内部及其子类内部访问的属性和方法。
私有:只能在类的内部访问的属性和方法。
这是个很基础的问题,建议你多看书。
C. phpclass是什么意思,怎么用
class关键字在PHP中用于声明类。类是面向对象编程的核心,它封装了数据和操作这些数据的方法。在PHP中创建类时,使用"class"关键字开头,后面跟类名。
类定义后,可以创建类的实例,即对象。对象是类的具体化,它包含了类定义的数据和方法。通过实例化类,可以调用类中的方法并访问其属性。
类的定义通常包含属性(数据成员)和方法(函数)。属性用于存储对象状态,方法用于描述对象的行为。属性可以是私有的(仅类内部访问)、公有的(所有位置访问)或受保护的(类内部和继承类访问)。方法则提供了一种执行特定操作的方式。
面向对象编程的基本原则之一是封装,即隐藏对象的内部细节,并只暴露必要的接口供外部使用。在类中,可以通过公共方法访问和修改属性,而类的内部实现细节对外部隐藏。
实例化类后,可以通过对象名调用其方法,以执行特定操作。方法调用遵循面向对象编程的规则,如链式调用、多态等。多态允许同一方法名在不同类中有不同的实现,提供了一种灵活的编程方式。
在PHP中使用class关键字声明类后,可以创建具有特定功能的模块化代码,使程序更易于维护和扩展。通过类的继承,可以实现代码的重用,即一个类可以从另一个类派生,继承其属性和方法。这有助于构建复杂系统时组织和管理代码。
总之,class关键字在PHP中用于声明类,它是面向对象编程的基础,通过封装数据和方法,提供了更强大、更灵活的程序设计能力。在实际应用中,合理使用类可以显着提高代码的可读性、可维护性和复用性。
D. php实例化
有几个书写错误,现在已经订正!
$arr = $this->GetRecord($SQL);//这不是调用父类中的方法吗?
我跟你说过,什么叫继承,就是说子类拥有父类的所有成员(在可继承的情况下),你可以通过作用域连接符使用父类成员,也可以通过$this关键字(静态的,私有的不行!!!!!)!!!!!!!
怎样来认识面向对象编程:
给你举个例子:
class student{
public $name;
public statics $age;
public function set_name($name){
$this->name=$name;//这是正确的
self::$name=$name;//正确
$name=$name;//这句错误
}
public function set_age($age){
$this->age=$age;//错误
self::$age=$age;//正确
}
}
//为什么会这样呢,也就是说,如果你要在类里面另外的成员,那么你就要通过
//$this关键字,或者作用域解析符,但是如果是静态成员,不能使用$this访问,来引用它,不能像普通的代码一样直接使用.
$this->name你可以这样理解,学生的名字,也就是说$this代表的就是类名
class boy_student extents students{
//这个类扩展自students,也就是说有students类的所有成员,
//当然你也可以添加students没有的成员
$aadress;
:
:
:
//如果你要应用父类的方法:可以这样:
parent::set_name(....)
//当然这里涉及到的东西足足可以写成一本书,不是说有的父类成员都能子类访问,有些甚至连继承都不行,这里涉及到可见性的问题!
}
*********************************
$this->xxx 实例化来调用的吗?
*******************************
这不是实例化,什么叫实例化,就是说,刚才我们定义的是一个抽象的东西,就像学生,他是一个类别;
$zhangshan = new students();
这才是实利化,明白吗!