以下是关于__construct的解释:

本次文章

我打算用初学者的方式解释关于构造函数(__construct)的困惑情况,在学习PHP时遇到的。

__construct是什么意思?

在创建一个新的实例时,首先被执行的函数是__construct。通过使用它,可以在生成实例时进行初始化操作。

实例

上述提到的实例是在生成的类中创建值时创建的。您可以将其视为继承了类中定义的属性(变量)。

使用方法

首先,我认为对于理解起来更容易,我们先来看一下不使用__construct的情况。

    書いたコード
<?php

class Post
{
  public $text;
  public $likes;

  public function show()
  {
    printf('%s (%d)' . PHP_EOL, $this->text, $this->likes);
  }
}

$posts = [];
$posts[0] = new Post;
$posts[0]->text = "hello";
$posts[0]->likes = 0;

$posts[1] = new Post;
$posts[1]->text = "hello again";
$posts[1]->likes = 0;

$posts[0]->show();
$posts[1]->show();
    実行結果
hello (0)
hello again (0)
~ $

接下来我们将看到使用__construct的相同内容的情况。

    書いたコード
<?php

class Post
{
  public $text;
  public $likes;

  public function __construct($text, $likes) //本題のコンストラクトの部分
  {
    $this->text = $text; 
//ここで記入している$textや$likesはプロパティとは異なる変数ということに注意!
    $this->likes = $likes;
  }

  public function show()
  {
    printf('%s (%d)' . PHP_EOL, $this->text, $this->likes);
  }
}

$posts = [];
$posts[0] = new Post('hello', 0); //上記とは異なり、インスタンスの引数に設定

$posts[1] = new Post('hello again', 0);

$posts[0]->show();
$posts[1]->show();
    実行結果
hello (0)
hello again (0)
~ $

__construct是一个在实例生成时执行的函数,因此将其作为参数传递。然后,可以通过写入public function __construct(变量)来使用它。此外,请注意,在construct内部使用的$text和$likes不是类的属性。通过实例的参数传递给__construct的值将被存储在$test和$likes变量中,并被存储在属性中。

总结

通过定义__construct函数,每次使用new关键字调用该函数时都能确保进行初始化操作,这样就不需要每次调用时都进行定义,从而避免了遗漏或忘记定义的问题,非常方便。在使用类时必须使用它,所以确保使用它没有错误。

广告
将在 10 秒后关闭
bannerAds