PHP8面向对象快速入门一 定义一个类,实例化以及调用

wilson'blog / 2024-08-23 / 原文

 1     class Animal{                         //使用class 关键字定义 类名称
 2             
 3           public $name = 'bird';          //定义public类型变量
 4           public $age = '1';
 5           public function eat(){          //定义public类型方法
 6 
 7             echo ' is eatting';
 8           }
 9 
10     }
11 
12     $bird = new Animal;                 //实例化 Animal类后赋给变量$bird
13 
14     echo $bird->name ;                  //打印 $bird中的name变量,注意->引用后无需再使用%符号
15     echo $bird->eat();                  //调用 $bird中的eat方法
运行后回显如下:
[Running] D:\ceshi.test\5.php"
bird is eatting
 
现在稍加变化,将eat方法中传入一个变量,同时再次调用方法时传入一个值,如下:
  class Animal{
            
          public $name = 'bird';
          public $age = '1';
          public function eat($name){   //传入一个变量

            echo $name.' is eatting';
          }

    }

    $bird = new Animal;
    echo $bird->eat('fox');     //调用时传入一个fox

此时回显结果如下:

[Running] D:\ceshi.test\5.php"
fox is eatting
 
上面的例子是调用了类外面传入的内容,此时若要调用类中的变量就需要用到this关键字了,如下:
 
    class Animal{
            
          public $name = 'bird';
          public $age = '1';
          public function eat(){

            echo $this->name.' is eatting';  //此时使用$this关键字加上->的方式调用类中的变量name
          }

    }

    $bird = new Animal;

    //echo $bird->name ;
    echo $bird->eat();

回显如下:

[Running] D:\ceshi.test\5.php"
bird is eatting
 
接下来,我们继续new一个fox对象,然后在外面把name的值修改下
    class Animal{
            
          public $name = 'bird';
          public $age = '1';
          public function eat(){

            echo $this->name.' is eatting';
          }

    }

    $bird = new Animal;

    echo $bird->eat();

    $fox = new Animal;      //new 出一个fox
    $fox->name='fox';       //在外面直接修改name属性的值,注意调用的格式
    echo $fox->eat();

此时回显如下:

[Running] D:\ceshi.test\5.php"
bird is eattingfox is eatting
 
由此可见
每个通过类实例化后的实例都是独立的,每个实例都拥有自己的内存空间。

在编程中,实例指的是一个类的具体对象。理解实例可以从以下几个方面入手:

  1. 类和对象:类是一个模板或蓝图,定义了对象的属性和方法。实例则是这个模板的一个具体实现,包含了实际的数据。

  2. 创建实例:通过实例化(使用 new 关键字),你可以创建一个类的对象,并将其用于存储数据和调用方法。

  3. 独立性:每个实例都是独立的,具有自己的属性值。虽然多个实例可以使用相同的类定义,但它们的状态和行为是独立的。

  4. 实用性:实例化允许你创建和操作多个对象,每个对象可以拥有不同的属性值和状态,提供了灵活性和重用性。

简单来说,实例就是类的一个实际化身,用来存储数据和执行定义在类中的操作。