21xrx.com
2024-11-22 08:10:48 Friday
登录
文章检索 我的文章 写文章
PHP OOP - 类和对象
2021-07-22 18:50:29 深夜i     --     --
P H P O P -


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


OOP案例

让我们假设我们有一个名叫Fruit的class。 Fruit可以具有像名称一样的属性, 颜色,重量等。我们可以定义$name,$ Color和$权重的变量来保存这些属性的值。

当创建各个物体(Apple,Banana等)时,他们继承了 所有 类的属性和行为,但每个对象都有不同的属性值。


定义一个类

使用class关键字定义了一个类 ,后跟类的名称和一对花括号({})。 它的全部属性和方法在括号内:

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

下面我们宣布一个名为Fruit的class组成的两个属性 ($name和$color)和两个方法set_name()和 get_name()设置和获取$name属性:

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

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

注意:在类中,变量称为属性和 功能称为方法!



定义对象

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

对象 使用新关键字创建类。

在下面的例子中,$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.

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

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>

 

 

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复