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

  在这一节中,我们就来看看在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();

  ?>