一步一步学习PHP(5) 类和对象
2015-01-24信息快讯网
OO的强大我不想再多说,如果你不认同OO,那么当你放眼当前流行的语言,有哪个又不支持OO的,也许这个很有说服力了吧。
在这一节中,我们就来看看在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守护进程 加linux命令nohup实现任务每秒执行一次
php高级编程-函数-郑阿奇
php 日期和时间的处理-郑阿奇(续)
php 目录与文件处理-郑阿奇(续)
第4章 数据处理-php正则表达式-郑阿奇(续)
关于PHP中Object对象的笔记分享
php设计模式 DAO(数据访问对象模式)
php学习笔记 面向对象中[接口]与[多态性]的应用
php学习笔记 php中面向对象三大特性之一[封装性]的应用
php学习笔记 面向对象的构造与析构方法
一步一步学习PHP(6) 面向对象
php 生成静态页面的办法与实现代码详细版
PHP采集相关教程之一 CURL函数库
php 数组的合并、拆分、区别取值函数集
提高PHP编程效率 引入缓存机制提升性能
一步一步学习PHP(4) php 函数 补充2
在PHP中养成7个面向对象的好习惯
PHP5 面向对象(学习记录)
PHP 面向对象实现代码
php面向对象全攻略 (十七) 自动加载类
php面向对象全攻略 (十六) 对象的串行化