正常访问状态! 设为首页 | 加入收藏夹 | 浏览历史  
  http://www.guosp.com
 碧海澜涛居
  海纳百川,有容乃大。壁立千刃,无欲则刚!
 
 
关键词:
  网站首页 | 关于本站 | 技术资料 | 美文日志 | 读书收藏 | 影视收藏 | 软件收藏 | 摄影相册| 留言板 
  技术资料 >> PHP资料库 关闭(快捷键alt+C)
搜索标签: 笔记 php类
php类学习
[阅读次数:1090次]  [发布时间:2011年4月21日]
1,类:类是一组具有相同数据结构和相同操作的对象的集合,类是对象的抽象,他将一组数据属性和在数据上的一组合法操作抽象封装,类好比是一个对象模板,基于类就可以生成多个具有不同属性值的对象。
2,创建类:
Class classname
{
}
3,为该类添加属性和方法:只需要在类中声明变量即可。声明了属性之后可以获取该属性的值。
⑴创建属性:Class classname 
{
Var $myName;
Var $myAge;
}
⑵创建方法:class classname
{
Var $myName;
Var $myAge;
Function getName()
{
}
Function getAget($arg1,$arg2)
{
}
}
注:以上创建了两个类的方法,方法名称分别为:getName,getAge
4,构造函数:大多数的类都有构造函数,当一个类实例被调用时,将调用构造函数,通常在构造函数中将执行一些初始化的操作。
⑴在类中声明构造函数:同声明其他函数一样,但是构造函数的名称是固定的。即函数名必须为:construct()
注:构造函数可以由编程人员主动调用,但大部分时候,都是在创建类对象实例的时候自动调用。构造函数也可以传递参数,这些参数可以在调用类的时候传递。
声明构造函数的方法:
Class classname
{
Function construct($param)
{
代码
}}
⑵析构函数:是一种当对象被销毁时,无论使用了unset()或简单的脱离范围,都会被自动调用的函数。
与构造函数的名称类似,一个类的析构函数名称必须是_destruct()
5,类的实例化:声明了一个类之后,如果要使用该类,必须创建该类的一个实例,实际上也可以将该类作为一个变量,在使用之前必须手动定义。用关键字“new”来创建一个类的实例。
<?php
Class classname
{
Function construct($myName)
{echo (“我的名字是:$myName<br>”);}
 
}
$name1=new myName(“小猪”);
$name2=new myName(“小狗”);      //创建了2个该类的实例
?>
注:new myName (“小猪”) 中的参数“小猪”会被 自动传递到构造函数,然后构造函数直接使用该参数。
6,使用类的属性:
在一个类中访问类成员变量有一个特殊的指针:$this通过该指针可能方便的访问类属性或是给类属性赋值。
Class classname
{
Var $myattrib;  //定义属性
Function operate($myparam) //为类创建方法
{
$this->myattrib=$myparam; //设置属性值为$myparam
Echo $this->myattrib; //输出属性值
}
}
⑴如果要在类的外部访问一个类的属性,需要确定该属性能否被外部访问。因为在类中定义的属性可以设置外界访问的权限。
以上对属性$myarrtib进行限制,外界可以直接访问:
$newclass =new classname(); //创建一个类classname实例
$newclass->myattrib=”小马”; //给属性赋值
Echo $newclass->myattrib; //输出属性
⑵从类的外部直接访问类的属性不是一个好的方法,面向对象方法的一个优点就是使用类的封装。可以通过使用get()和set()函数来实现对该类属性的访问。
Class classname
{
Var $myattrib; //定义属性
Function get($attribName) //获取属性值的函数
{
Return $this->attribName; //返回该属性的值
}
Function set($arrtibName,$value) //设置属性值的函数
{
$this->$attribName=$value; //设置属性值
}
}
注:get函数只有一个参数,该参数用来传递属性的名称,set函数有两个参数,第一个参数为属性的名称,第二个参数为要设置的属性的值。可以通过这两 个函数来检查和设置任何属性的值。
7,类的访问控制:
Php5 支持的3 种控制符:
⑴public (默认的) public表示该属性和方法在类的内部或外部都可以直接被访问。
⑵private 表示该属性和方法只能在类的内部进行访问。如果没有使用get()和set(),则可能对所有的属性都使用这个关键字,也要选择部分方法为私有,但私有的属性和方法不能被继承。
⑶Protected 表示被标记的属性或方法只能在类的内部进行访问,他也存在于任何子类中。
Class classname
{
Public $myattrib;
Public function get($attribName) //获取属性值的函数
{
Return $this->$attribName;//返回该属性值
}
Public function set($attribName,$value) //设置属性值的函数
{
This->$attribName=$value;//设置属性值
}
}
 
8,类方法的调用:
Class classname
{
Var $myAttrib;
Function func_1($param) //函数func_1
{
代码
}
Function func_2($param1$param2)
{
代码 
}
Function func_3($param1$param2)
{
代码
Return backvalue;
}
}
调用以上类的3个函数:
$newclass->func_1(“123”);
$newclass->func_2(“123”,”abc”);
$myvalue=$newclass->func_3(“123”,”abc”);//调用func_3并获取返回值。
 
9,有关类的代码:
$this通过该指针可能方便的访问类属性或是给类属性赋值。
class Employee   //创建一个类“Employee”

var $empno; // 员工人数     //定义类的属性
var $empnm; // 员工姓名 
function add_employee($in_num, $in_name)  //创建类的方法为“add_employee”

$this->empno = $in_num;  //给类的属性赋值
$this->empnm = $in_name; 

function show()  //创建类的方法为“show”

echo "$this->empno, $this->empnm";  //输出属性值
return; 

function changenm($in_name) 

$this->empnm = $in_name; 


$sbabu = new Employee; 
$sbabu->add_employee(10,"sbabu"); 
$sbabu->changenm("babu"); 
$sbabu->show(); 




本页地址: [复制地址]
该页内容非本站原创 收藏自:互联网
返回顶部 关闭(快捷键alt+C)
评论统计(0条)| 我要评论
暂无评论内容!
我要评论 
我要评论: 带*部分需要填写
 姓名称呼: * 请填写您的姓名或呢称
联系方式: QQ,MSN,Email都可以,方便交流 (仅管理员可见)
 评论内容: * 不超过100字符,50汉字
验证码:
    
  推荐链接
  最近更新  
·Host 'XXX' is not allowed...
·Win2008或IIS7的文件上传大...
·IIS7.0上传文件限制的解决方...
·测试信息2015-03-11
·asp.net中处理图片
·ASP.NET之Web打印-终极解决...
·Asp.net下C#调用Word模版实...
·asp.net下将页面内容导入到...
·asp.net导出为pdf文件
·asp.net生成pdf文件
·FCKeditor 文本编辑器的使用...
·ASP.NET 将数据生成PDF
·asp.net2.0导出pdf文件完美...
·AspJpeg的安装与测试
·JS验证浏览器版本对IE11的支...
  热门浏览  
·IE8和IE9出现“此网页上的问...
·无线路由器密码破解,教你断...
·js替换所有回车换行符
·QQ/MSN在线交流代码
·IE弹出“中国工商银行防钓鱼...
·如何取消键盘上的一些快捷键...
·win7声音小的解决方法
·webdav漏洞的利用
·强制两端对齐的函数或者CSS...
·win7下成功安装sql server ...
·显示器分辨率调的过高导致电...
·天诺时空技术技术论坛
·js验证手机号码格式
·JS展开和收缩效果(二)
·本地计算机上的 MSSQLSERVE...
  碧海澜涛居
网站首页关于本站站长简介开发案例技术资料美文日志摄影相册读书收藏影视收藏留言板
版权所有:碧海澜涛 QQ:410436434 Email:shaopo_guo@163.com 苏ICP备15000526号
免责声明:本站为个人网站,站内所有文字、图片等各类资料均为个人兴趣爱好所收集,不用作任何商业用途,亦不保证资料的真实性,若有因浏览本站内容而导致的各类纠纷,本站也不承担任何责任。本站部分内容来自互联网,如有涉及到您的权益或隐私请联系站长解决。