Yii中的超类(基类)使用 (读深入PHP面向对象笔记)
2015-02-26 15:34
627 查看
基类
class UserController extends Controller {
public $userId = null;
public function init() {
parent::init();
$this->userId = 11111111;
}
//注意action不要掉
public function beforeAction($action) {
if (empty($this->userId)) {
return FALSE;
}
return TRUE;
}
}
继承的时候不要忘了parent方法
class UserAjaxBaseController extends UserController {
public function init() {
$this->responseData = array(
'success' => false,
'msg' => '',
'errorCode' => self::ILLEGALITY,
'data' => array(),
);
parent::init();
}
public function beforeAction($action) {
//如果没有用户ID 或者 不是ajax请求过来的,拒绝,本地调试的时候可以去掉ajax校验
if (!parent::beforeAction($action) || !Yii::app()->request->isAjaxRequest) {
$this->response();
return FALSE;
}
//reffer验证 $_SERVER["HTTP_REFFER"]
//是否是ajax请求
return TRUE;
}
继承,可以使用父类的方法,也可以子类里面重新实现父类的方法。
搜索,如果子类中没有这个属性或者方法,说明是来自其父类的。
构造方法的继承也是一样的,注意父类的方法不要随意变更,也不要修改层次结构等问题,不然会引起bug。
//继承了父类的属性,并且新增了一个自己的属性
function __construct($a,$b,$c){
parent::__construct($a,$b);
$this->c = $c;
echo 111;
}
注意 parent关键字,parent关键字可以在任何覆写父类方法的方法中使用。覆写父类方法表示不希望删除父类的功能,而是扩展它。
(利用已经存在的功能,而不是重新开发)
public private protected 决定了类的访问控制(管理)。
为了保证数据,防止被外面调用时破坏,一般使用 private做类属性的关键字。
而get和set方法为public,作为赋值和取值方法,通常为public的。
借助类型提示和访问控制可以更好的控制类的接口。
class UserController extends Controller {
public $userId = null;
public function init() {
parent::init();
$this->userId = 11111111;
}
//注意action不要掉
public function beforeAction($action) {
if (empty($this->userId)) {
return FALSE;
}
return TRUE;
}
}
继承的时候不要忘了parent方法
class UserAjaxBaseController extends UserController {
public function init() {
$this->responseData = array(
'success' => false,
'msg' => '',
'errorCode' => self::ILLEGALITY,
'data' => array(),
);
parent::init();
}
public function beforeAction($action) {
//如果没有用户ID 或者 不是ajax请求过来的,拒绝,本地调试的时候可以去掉ajax校验
if (!parent::beforeAction($action) || !Yii::app()->request->isAjaxRequest) {
$this->response();
return FALSE;
}
//reffer验证 $_SERVER["HTTP_REFFER"]
//是否是ajax请求
return TRUE;
}
继承,可以使用父类的方法,也可以子类里面重新实现父类的方法。
搜索,如果子类中没有这个属性或者方法,说明是来自其父类的。
构造方法的继承也是一样的,注意父类的方法不要随意变更,也不要修改层次结构等问题,不然会引起bug。
//继承了父类的属性,并且新增了一个自己的属性
function __construct($a,$b,$c){
parent::__construct($a,$b);
$this->c = $c;
echo 111;
}
注意 parent关键字,parent关键字可以在任何覆写父类方法的方法中使用。覆写父类方法表示不希望删除父类的功能,而是扩展它。
(利用已经存在的功能,而不是重新开发)
public private protected 决定了类的访问控制(管理)。
为了保证数据,防止被外面调用时破坏,一般使用 private做类属性的关键字。
而get和set方法为public,作为赋值和取值方法,通常为public的。
借助类型提示和访问控制可以更好的控制类的接口。
相关文章推荐
- php面向对象全攻略 (三)特殊的引用“$this”的使用
- 深入PHP面向对象、模式与实践(第 2 版) 高清PDF版下载
- 深入PHP面向对象、模式与实践
- php学习笔记------[PHP面向对象的程序设计]
- PHP面向对象学习笔记之一 基础概念
- php学习笔记---面向对象中[接口]与[多态性]的应用
- PHP面向对象学习的笔记
- PHP面向对象学习笔记之一:基础概念
- php学习笔记---面向对象中[接口]与[多态性]的应用
- PHP面向对象学习笔记之一 基础概念
- PHP 面向对象学习笔记总结
- php学习笔记---面向对象中[接口]与[多态性]的应用
- php学习笔记------[PHP面向对象的程序设计]
- PHP面向对象学习笔记之二:生成对象的设计模式
- PHP面向对象中this,self,parent区别和使用
- PHP面向对象学习的笔记
- php学习笔记------[php面向对象中常用关键字与魔术方法]
- php学习笔记 面向对象中[接口]与[多态性]的应用
- php面向对象实例笔记
- php面向对象笔记(—)