一步一步学习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+Mysql+jQuery实现动态展示信息
Oct 08 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
Dec 28 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP借助phpmailer发送邮件
May 11 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
又拍云异步上传实例教程详解
Apr 19 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
Oct 23 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
php回调函数处理数组操作示例
Apr 13 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
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
简单介绍Python中的几种数据类型
2016/01/02 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
Linux下多个Python版本安装教程
2018/08/15 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python语言元素知识点详解
2019/05/15 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
益模软件Java笔试题
2012/03/27 面试题
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
教师党员公开承诺书
2014/03/25 职场文书
公司经理聘任书
2014/03/29 职场文书
公司投资建议书
2014/05/16 职场文书
综治工作心得体会
2014/09/11 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
病人慰问信范文
2015/02/15 职场文书
大学推普周活动总结
2015/05/07 职场文书
行政二审代理词
2015/05/25 职场文书
2019思想汇报范文
2019/05/21 职场文书