一步一步学习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
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
php使用百度ping服务代码实例
Jun 19 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
PHP设置进度条的方法
Jul 08 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
php提交表单时保留多个空格及换行的文本样式的方法
Jun 20 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
Dec 25 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python回文字符串及回文数字判定功能示例
2018/03/20 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
中学生自我鉴定
2014/02/04 职场文书
黄金酒广告词
2014/03/21 职场文书
培训班主持词
2014/03/28 职场文书
保护动物倡议书
2014/04/15 职场文书
城市创卫标语
2014/06/17 职场文书
会计学毕业生求职信
2014/06/25 职场文书
应届大专生求职信
2014/06/26 职场文书
教师个人年终总结
2015/02/11 职场文书
跑吧孩子观后感
2015/06/10 职场文书
小学生教师节广播稿
2015/08/19 职场文书
springboot入门 之profile设置方式
2022/04/04 Java/Android