Discuz教程网

PHP一步一步学习(5) 类和对象

[复制链接]
authicon dly 发表于 2011-9-6 11:13:10 | 显示全部楼层 |阅读模式
在这一节中,我们就来看看在PHP中如何创建一个类和对象。

1. 创建类

在PHP中,创建一个类和在C#/Java中基本类似,闲话少说,给大家看个最简单的例子:
代码如下:

  1. <?php
  2. class People
  3. {
  4. var $name;
  5. public function GetName()
  6. {
  7. return $this->name;
  8. }
  9. public function SetName($name)
  10. {
  11. $this->name=$name;
  12. }
  13. }

  14. $p=new People();
  15. $p->SetName("kym");
  16. echo($p->GetName());
  17. ?>
复制代码


这里,我们就创建一个People的类,在这里有四个要点说明一下:

第一个是在PHP中,访问属性(或者方法)不是用我们所常用的点运算符(.),而是用->。

第二个是在PHP中,方法需要用function在标识,这点于Javascript很类似。

第三点是当我们声明一个变量时,需要用var,这点也与Javascript非常类似。

第四点是在PHP中,也有着public ,protected,private三个与C#同样的访问修饰符,不再赘述。

在这里,我们发现,我们可以用$p直接访问$name属性,那么我们需要对其进行控制,方法如下:
代码如下:

  1. class People
  2. {
  3. private $name;
  4. public function GetName()
  5. {
  6. return $this->name;
  7. }
  8. public function SetName($name)
  9. {
  10. $this->name=$name;
  11. }
  12. }
复制代码


这时,我们在外界就无法访问到$name属性了。

还记得我们在上文中提到了可变函数么?在这里我们一样可以用可变函数来访问对象的方法:
代码如下:

  1. <?php
  2. class People
  3. {
  4. private $name;
  5. public function GetName()
  6. {
  7. return $this->name;
  8. }
  9. public function SetName($name)
  10. {
  11. $this->name=$name;
  12. }
  13. }

  14. $p=new People();
  15. $get="GetName";
  16. $set="SetName";
  17. $p->$set("kym");
  18. echo($p->$get());
  19. ?>
复制代码


2. 静态方法(属性)

在PHP中声明静态方法(也可称之为类方法)与C#中是十分类似的。
代码如下:

  1. <?php
  2. class DataBase
  3. {
  4. public static function CreateConnection()
  5. {
  6. echo("Success");
  7. }
  8. }
  9. DataBase::CreateConnection();
  10. ?>
复制代码

同理,声明静态属性也是一样。

代码如下:

  1. <?php
  2. class DataBase
  3. {
  4. static $connectionString="http://127.0.0.1";
  5. public static function CreateConnection()
  6. {
  7. echo("Success");
  8. }
  9. }
  10. echo(DataBase::$connectionString);
  11. DataBase::CreateConnection();
  12. ?>
复制代码


3. 类常量

在C#中,我们用const来标识常量,在PHP中也是一样。
代码如下:

  1. <?php
  2. class DataBase
  3. {
  4. const AUTHOR="kym";
  5. static $connectionString="http://127.0.0.1";
  6. public static function CreateConnection()
  7. {
  8. echo("Success");
  9. }
  10. }
  11. echo(DataBase::AUTHOR);
  12. echo(DataBase::$connectionString);
  13. DataBase::CreateConnection();
  14. ?>
复制代码


4. 访问静态变量

我们知道,静态属性(方法)属于类本身,而变量(方法)属于对象本身,而类本身先于对象而存在,那么我们如何来在动态方法中访问静态的变量(方法)呢?在PHP中,为我们提供了self关键字。
代码如下:

  1. <?php
  2. class DataBase
  3. {
  4. const AUTHOR="kym";
  5. static $connectionString="http://127.0.0.1";
  6. public static function CreateConnection()
  7. {
  8. echo(self::$connectionString." Success");
  9. }
  10. }
  11. echo(DataBase::AUTHOR);
  12. echo(DataBase::$connectionString);
  13. DataBase::CreateConnection();
  14. ?>
复制代码






上一篇:PHP一步一步学习(6) 面向对象
下一篇:Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-3 09:27

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表