一步一步学习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 mongodb扩展时 需要注意的事项
Jun 18 PHP
解析php类的注册与自动加载
Jul 05 PHP
php旋转图片90度的方法
Nov 07 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
php通过两层过滤获取留言内容的方法
Jul 11 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
浅谈PHP进程管理
Mar 08 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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循环输出数据库内容的代码
2008/05/24 PHP
php中opendir函数用法实例
2014/11/15 PHP
php-msf源码详解
2017/12/25 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
Django验证码的生成与使用示例
2017/05/20 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
python tornado使用流生成图片的例子
2019/11/18 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
python3爬取torrent种子链接实例
2020/01/16 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
创建市级文明单位实施方案
2014/03/01 职场文书
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
捐资助学倡议书
2014/04/15 职场文书
大学生励志演讲稿
2014/04/25 职场文书
优秀求职信
2014/05/29 职场文书
授权委托书(完整版)
2014/09/10 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
2015员工年度考核评语
2015/03/25 职场文书
物业工程部主管岗位职责
2015/04/16 职场文书
加班费申请报告
2015/05/15 职场文书
运动员入场词
2015/07/18 职场文书