一步一步学习PHP(5) 类和对象


Posted in PHP onFebruary 16, 2010

在这一节中,我们就来看看在PHP中如何创建一个类和对象。

1. 创建类

在PHP中,创建一个类和在C#/Java中基本类似,闲话少说,给大家看个最简单的例子:

<?php 
class People 
{ 
var $name; 
public function GetName() 
{ 
return $this->name; 
} 
public function SetName($name) 
{ 
$this->name=$name; 
} 
} $p=new People(); 
$p->SetName("kym"); 
echo($p->GetName()); 
?>

这里,我们就创建一个People的类,在这里有四个要点说明一下:

第一个是在PHP中,访问属性(或者方法)不是用我们所常用的点运算符(.),而是用->。

第二个是在PHP中,方法需要用function在标识,这点于Javascript很类似。

第三点是当我们声明一个变量时,需要用var,这点也与Javascript非常类似。

第四点是在PHP中,也有着public ,protected,private三个与C#同样的访问修饰符,不再赘述。

在这里,我们发现,我们可以用$p直接访问$name属性,那么我们需要对其进行控制,方法如下:

class People 
{ 
private $name; 
public function GetName() 
{ 
return $this->name; 
} 
public function SetName($name) 
{ 
$this->name=$name; 
} 
}

这时,我们在外界就无法访问到$name属性了。

还记得我们在上文中提到了可变函数么?在这里我们一样可以用可变函数来访问对象的方法:

<?php 
class People 
{ 
private $name; 
public function GetName() 
{ 
return $this->name; 
} 
public function SetName($name) 
{ 
$this->name=$name; 
} 
} $p=new People(); 
$get="GetName"; 
$set="SetName"; 
$p->$set("kym"); 
echo($p->$get()); 
?>

2. 静态方法(属性)

在PHP中声明静态方法(也可称之为类方法)与C#中是十分类似的。

<?php 
class DataBase 
{ 
public static function CreateConnection() 
{ 
echo("Success"); 
} 
} 
DataBase::CreateConnection(); 
?>

同理,声明静态属性也是一样。
<?php 
class DataBase 
{ 
static $connectionString="http://127.0.0.1"; 
public static function CreateConnection() 
{ 
echo("Success"); 
} 
} 
echo(DataBase::$connectionString); 
DataBase::CreateConnection(); 
?>

3. 类常量

在C#中,我们用const来标识常量,在PHP中也是一样。
<?php 
class DataBase 
{ 
const AUTHOR="kym"; 
static $connectionString="http://127.0.0.1"; 
public static function CreateConnection() 
{ 
echo("Success"); 
} 
} 
echo(DataBase::AUTHOR); 
echo(DataBase::$connectionString); 
DataBase::CreateConnection(); 
?>

4. 访问静态变量

我们知道,静态属性(方法)属于类本身,而变量(方法)属于对象本身,而类本身先于对象而存在,那么我们如何来在动态方法中访问静态的变量(方法)呢?在PHP中,为我们提供了self关键字。
<?php 
class DataBase 
{ 
const AUTHOR="kym"; 
static $connectionString="http://127.0.0.1"; 
public static function CreateConnection() 
{ 
echo(self::$connectionString." Success"); 
} 
} 
echo(DataBase::AUTHOR); 
echo(DataBase::$connectionString); 
DataBase::CreateConnection(); 
?>
PHP 相关文章推荐
自定义PHP分页函数
Oct 09 PHP
也谈截取首页新闻 - 范例
Oct 09 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php+ajax实时刷新简单实例
Feb 25 PHP
php动态绑定变量的用法
Jun 16 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
详解Window7 下开发php扩展
Dec 31 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
Joomla使用Apache重写模式的方法
May 04 PHP
php 生成静态页面的办法与实现代码详细版
Feb 15 #PHP
IP138 IP地址查询小偷实现代码
Feb 15 #PHP
PHP采集相关教程之一 CURL函数库
Feb 15 #PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 #PHP
提高PHP编程效率 引入缓存机制提升性能
Feb 15 #PHP
一步一步学习PHP(4) php 函数 补充2
Feb 15 #PHP
一步一步学习PHP(3) php 函数
Feb 15 #PHP
You might like
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP在字符断点处截断文字的实现代码
2011/04/21 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
学习并汇集javascript匿名函数
2010/11/25 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
[01:52]DOTA2完美大师赛Vega战队趣味视频——kpii老师小课堂
2017/11/25 DOTA
[01:04:22]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 IG vs EG
2018/04/01 DOTA
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python中join和split用法实例
2015/04/14 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Django的models中on_delete参数详解
2019/07/16 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Django 自动生成api接口文档教程
2019/11/19 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Python list运算操作代码实例解析
2020/01/20 Python
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
保险经纪人求职信
2014/03/11 职场文书
优质服务演讲稿
2014/05/14 职场文书
初婚未育证明样本
2014/10/24 职场文书
简单的离婚协议书范本
2014/11/16 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android