一步一步学习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 相关文章推荐
THINKPHP+JS实现缩放图片式截图的实现
Mar 07 PHP
PHP数组实例总结与说明
Aug 23 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
PHP json_decode函数详细解析
Feb 17 PHP
php命令行用法入门实例教程
Oct 27 PHP
PHP的pcntl多进程用法实例
Mar 19 PHP
PHP SOCKET编程详解
May 22 PHP
PHP中iconv函数知识汇总
Jul 02 PHP
详解PHP实现执行定时任务
Dec 21 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
Laravel5.1 框架路由基础详解
Jan 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
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php求一个网段开始与结束IP地址的方法
2015/07/09 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python打包可执行文件的方法详解
2016/09/19 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
virtualenv介绍及简明教程
2020/06/23 Python
python主要用于哪些方向
2020/07/05 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
联想中国官方商城:Lenovo China
2017/10/18 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
个人求职信范文分享
2014/01/06 职场文书
同学聚会主持词
2014/03/18 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
青年志愿者服务活动总结
2015/05/06 职场文书
舞出我人生观后感
2015/06/16 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
Html5生成验证码的示例代码
2021/05/10 Javascript