- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最新的PHP类精髓归纳
最新的PHP类精髓归纳
最新的PHP类精髓归纳
一:结构和调用(实例化):
class className{} ,调用:$obj = new className();当类有构造函数时,还应传入参数。如$obj = new className($v,$v2...);
二:构造函数和析构函数:
1、构造函数用于初始化:使用__construct(),可带参数。
2、但析构函数不能带参数(用于在销去一个类之前执行一些操作或功能)。析构函数用__destruct()做名称。在脚本执行结束时,PHP会销掉内存中的对象,因此可不用析造函数,但有些比如COOKIE等,就应当要用此函数销掉。
知识点:在PHP4中也提供了构造函数,但使用的是与类同名的类方法,在PHP5仍能兼容这种做法,当一个类中没有包含__construct时,会查找与类同名的方法,如果找到,就认为是构造函数,如下:
class test{
var $b;
function test() { $this-b=5; }
function addab($c) { return $this-b+$c; }
}
$a = new test(); echo $a-addab(4); // 返回 9
3、PHP不会自动调用父类的构造函数(不支持构造函数重载),必须使用parent关键字显式地调用。
class employee{
function __construct()....
}
class Manager extents Employee{
function __construct(){
parent::_construct();
echo 这个子类的父类构造函数调用了!;
}
}
当然也可以调用与该实例没有任何关系的其它类的构造函数。只需在__construct()前加上类名即可。如:
otherClassName::__construct();
类的主家庭成员:属性、方法、常量、静态成员
三、类的属性:
有两种方法对类的属性赋值或取值。
1、使用公共作用域public关键词。
2、使用__set()和__get()来分别赋值和取值,前者称为设置方法(setter)或修改方法(mutator),后者称为访问方法(accessor)或获取方法(getter)。建议使用这种方法:优点:
A、可在__set()统一进行数据验证。
B、便于统一管理属性。
注意:
第一:__set()和__get()只对私有属性起作用,对于用public定义的属性,它们两个都懒理搭理,如下:
class test{
protected $a=9,$b=2,$c;
public $d;
function __set($n,$v) { $this-$n = $v+2; }
function __get($name) { return $this-$name+2; }
}
$a = new test();
$a-b =5; echo br /; echo $a-b;
实例只对$a,$b,$c的设置会经过__set和__get过滤与返回,对于$d,就不会起作用。如$a-d=5,再返回还是5。
第二:__set($n,$v)要带两个参数。而__get($n)只能有一个参数。实例:
class test{
private $a=5,$b=6,$c;
function __set($n,$v){
if($n==a$n0) $this-$n = $v;
else $this-$n = $v+2;
}
function __get($name){
return $this-$name; //如果改为return $this-$name + $this-addab(); 如调用a的值,实际返回的是a+a+b的值。默认为5+5+6=16。
}
function addab() {
return $this-a + $this-b;
}
}
$e=new test();
$e-a = 11; //注意写法:类的内部用$this-$n即变量的写法,但外部实例要用$e-a的方式。
$e-b = 12; //get 14
$e-k = 22;
类的属性可自由扩展,如上例的k,不管是否用__set,当一个实例建立起来后,可以用$e-newProperty = xx;直接来创造一个属性,但不建议这么做。
四、类的方法:
理解成类当中的函数即可。
调用:
1、内部调用:可使用$this-Fanname();或$this-addab()或test::addab();
2、实例化调用时,用$e-addab();即可。对于在该方法中没有使用$this关键字的,如上例中的:
function addab() { return $th
您可能关注的文档
- 日产2012:120企业培训万辆押注中国市场.doc
- 日剧精彩对白1.doc
- 日产车系故障代码查询.doc
- 日常例行营销的十个“守则”.doc
- 日常切猪腰时常用的花刀技法及其运用.doc
- 日常寒暄用语:.doc
- 日常生活用品 中德文对照.doc
- 日常祝福.doc
- 日常祝贺用语.doc
- 日常短信.doc
- 《调整建撤站点》课件.ppt
- 高二下册数学文科期中试卷.doc
- 《课件:家族性共济失调疾病解析》.ppt
- 人教版九年级化学上册第三单元 物质构成的奥秘 课题3 元素 教案(A+B).doc
- 4 孙权劝学 (第1课时)导学案(含答案).docx
- 4.1 第1课时 三角形及内角和 导学案(含答案) 北师大版(2025)七年级数学下册.docx
- 4.《窦娥冤(节选)》同步练习(含答案)统编版高中语文必修下册.docx
- 人教版九年级化学上册第七单元燃料及其利用课题1燃烧和灭火 导学案(无答案).docx
- 《课件:房地产项目深度解析》.ppt
- 4.1 第3课时 三角形的高线、中线和角平分线 导学案(含答案)北师大版(2025)七年级数学下册.docx
文档评论(0)