一步一步学习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编程语言开发动态WAP页面
Oct 09 PHP
PHP计划任务之关闭浏览器后仍然继续执行的函数
Jul 22 PHP
深入PHP变量存储的详解
Jun 13 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
PHP抓屏函数实现屏幕快照代码分享
Jan 02 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 PHP
PHP中error_reporting函数用法详细介绍
Jun 11 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP生成短网址的思路以及实现方法的详解
Mar 25 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
PHP命名空间与自动加载机制的基础介绍
Aug 25 PHP
laravel-admin 中列表筛选方法
Oct 03 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中设置index.php文件为只读的方法
2013/02/06 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
2013/06/25 PHP
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
Python 面向对象 成员的访问约束
2008/12/23 Python
python抓取京东商城手机列表url实例代码
2013/12/18 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
Python 编码处理-str与Unicode的区别
2016/09/06 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
python获取服务器响应cookie的实例
2018/12/28 Python
python实现五子棋小程序
2019/06/18 Python
利用python开发app实战的方法
2019/07/09 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
采购内勤岗位职责
2013/12/10 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
助残日活动总结
2014/08/27 职场文书
工资证明格式模板
2015/06/12 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技