PHP 类和对象

创建于 2024-12-03 / 32
字体: [默认] [大] [更大]

类是对象的模板,对象是类的实例。


OOP 案例

假设我们有一个名为 Fruit 的类。 Fruit 可以具有名称、颜色、重量等属性。我们可以定义 $name、$color 和 $weight 等变量来保存这些属性的值。

创建单个对象(苹果、香蕉等)时,它们会继承类的所有属性和行为,但每个对象的属性值会有所不同。


定义一个类

通过使用 class 关键字定义类,后跟类的名称和一对花括号 ({})。 它的所有属性和方法都放在大括号内:

语法

<?php
class Fruit {
  // code goes here...
}
?>

下面我们声明一个名为 Fruit 的类,它包含两个属性($name 和 $color)以及两个用于设置和获取 $name 属性的方法 set_name() 和 get_name():

实例

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?> 亲自试一试 »

注释:在类中,变量称为属性,函数称为方法!



定义对象

没有对象,类什么都不是! 我们可以从一个类中创建多个对象。 每个对象都有类中定义的所有属性和方法,但它们会有不同的属性值。

类的对象是使用 new 关键字创建的。

在下面的例子中,$apple 和 $banana 是 Fruit 类的实例:

实例

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}

$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');

echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?> 亲自试一试 »

在下面的示例中,我们向 Fruit 类添加了另外两个方法,用于设置和获取 $color 属性:

实例

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?> 亲自试一试 »

PHP - $this 关键字

$this 关键字引用当前对象,并且只在方法内部可用。

看下面的例子:

实例

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
?>

那么,我们可以在哪里更改 $name 属性的值? 有两种方式:

1. 在类内部(通过添加 set_name() 方法并使用 $this):

实例

<?php
class Fruit {
  public $name;
  function set_name($name) {
    $this->name = $name;
  }
}
$apple = new Fruit();
$apple->set_name("Apple");
?> 亲自试一试 »

2. 类外(通过直接改变属性值):

实例

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
$apple->name = "Apple";
?> 亲自试一试 »

PHP - 实例

您可以使用 instanceof 关键字来检查对象是否属于特定类:

实例

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?> 亲自试一试 »

0 人点赞过