PHPのコンストラクター

王林
リリース: 2024-08-29 12:42:06
オリジナル
1048 人が閲覧しました

コンストラクターは、PHP5 OOP (オブジェクト指向プログラミング) の概念です。コンストラクターは、プログラム内で宣言したクラスに関連付けられます。コンストラクターは、クラスのオブジェクトがインスタンス化されるときに自動的に呼び出されます。したがって、コンストラクターの定義は次のようになります。「コンストラクターは、クラスのオブジェクトがインスタンス化されるときに自動的に呼び出される特別なメソッドです」。このトピックでは、PHP のコンストラクターについて学びます。

広告 このカテゴリーの人気コース PHP 開発者 - 専門分野 | 8コースシリーズ | 3 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

構文

<?php
Class Classname {
//constructor
function __construct() {
//statements
}
}
?>
ログイン後にコピー

上記のコードでは、コンストラクターは __ 二重アンダースコアで始まり、その後にキーワード構造が続きます。 __construct() のないコンストラクター、またはクラスの名前が変更された場合、定義されたメソッドは単なるメソッドであり、コンストラクターではありません。したがって、定義された構文に従ってクラス内でコンストラクターを定義することが重要です。

コンストラクターの種類

コンストラクターのタイプのいくつかとその出力を以下に示します

1) 事前定義されたコンストラクター

事前定義コンストラクターについて明確にするために、以下の例を見てみましょう

事前定義コンストラクターの例

コード:

<?php
class Person {
function  CanSpeak() {
echo " Not a constructor method " . '<br>';
}
function __construct() {
echo " In the constructor method " . '<br>';
}
}
//Object of class calling the constructor internally
$p = new Person();
// Object of class calling the normal method
$p->CanSpeak();
?>
ログイン後にコピー

出力:

PHPのコンストラクター

上記の例では

クラス Person には、人の CanSpeak() メソッドとコンストラクター メソッド __construct() の 2 つのメソッドがあります。次に、クラスをオブジェクト $p としてインスタンス化しました。 $p を使用して、通常のメソッドを呼び出しました。オブジェクトが作成されるとすぐに、コンストラクター メソッドが呼び出され、メソッド内のステートメントが実行されます。同様に、コンストラクター メソッドではなく通常のメソッドである CanSpeak() メソッドが、同じオブジェクト $p と内部のステートメントを使用して呼び出されます。そのメソッドが実行されます。また、上記で定義されたコンストラクターには引数がないため、これを引数ゼロのコンストラクターまたは定義済みコンストラクターと呼びます。

2) パラメーター化されたコンストラクター

コンストラクターには引数を付けても付けなくても構いません。引数を持つコンストラクターはパラメーター化されたコンストラクターと呼ばれ、引数のないコンストラクターは引数なしのコンストラクターと呼ばれます。例を見てみましょう。

パラメータ化されたコンストラクターの例

コード:

class Person {
private $first;
private $email;
private $mobile;
public function __construct($name, $email, $mobile) {
echo "Initialising the object...<br/>";
$this->name = $name;
$this->email = $email;
$this->mobile = $mobile;
}
public function showProfile() {
echo "My name is: " . $this->name. " " . $this->email. " " . $this->mobile;
}
}
$john = new Person("John","[email protected]", "9187986786");
$john->showProfile();
ログイン後にコピー

出力:

PHPのコンストラクター

コンストラクターはどのように機能しますか?

基本クラスのコンストラクターと、実行する独自のコンストラクターと実行する親コンストラクターを持つ extends キーワードを使用して基本クラスを拡張する派生クラスを見てみましょう。これまでは、クラスで宣言されたコンストラクターについてのみ学習しました。ここでコンストラクターにさらに知識を追加してみましょう。次の例では、基本クラス person にコンストラクターがあり、このコンストラクターは、parent キーワードを使用して派生クラスまたはサブクラスによって呼び出され、基本クラス person のコンストラクターにアクセスできます。

出力フロー

最初に person コンストラクターが呼び出され、次に Customer コンストラクターが呼び出され、内部で再度 person コンストラクターが呼び出され、次に独自の customer コンストラクターが呼び出され、最後に Person クラスを拡張する Employee クラスが呼び出されます。このため、person コンストラクターが再度呼び出されます。

コード:

class Person {
function __construct() {
echo "In Person constructor"."<br>";
}
}
class Customer extends Person  {
function __construct() {
parent::__construct();
echo "In Customer constructor"."<br>";
}
}
class Employee extends Person  {
// inherits Person’s constructor
}
// In Person constructor
$p = new Person();
// In Person constructor
// In Customer constructor
$c = new Customer();
// In Employee constructor
$e = new Employee();
ログイン後にコピー

出力:

PHPのコンストラクター

以下の例では、set メソッドと get メソッドがどのように機能するかを示しています。 OOP でのカプセル化の概念の使用。最初に、プログラムはコンストラクター、set_name メソッド、および get_name メソッドを使用して宣言されます。コンストラクターは、クラスがインスタンス化されるときに必ず呼び出されるパラメーター化されたコンストラクターであるため、最初の出力は John Doe であることに注意してください。次に、クラスのオブジェクトを作成し、出力を Alice として出力する set_name メソッドと get_name メソッドを呼び出しました。

コード:

<?php
class Person {
public $name;
function __construct($name) {
echo $this->name = $name;
}
function set_name($name) {
$this->name = $name;
}
function get_name() {
echo $this->name;
}
}
// In Person constructor
$p = new Person('John Doe');
echo "\n";
$p->set_name('Alice');
$p->get_name();
?>
ログイン後にコピー

出力:

PHPのコンストラクター

アクセス指定子

PHP には 3 つのアクセス指定子があります

  • 公開
  • 保護されています
  • プライベート

パブリック: パブリックとして宣言されたクラスのメンバーはどこからでもアクセスできます。

Protected: Members of the class declared as protected are accessible only within the base class and the derived class which extends the base class.

Private: Members of the class declared as private are accessible with the class that defines it.

Also, the variables declared are called data members or properties and the functions declared are called as data methods. In the below example we have Base Class declared as Person which has the following properties along with the access specifiers public name, protected email and private mobile. Now the class is instantiated with an object $p and these three properties which are accessed from the object. which outputs are an error, why because, the protected property says that protected are accessible only within the base class and the derived class which extends the base class?

Code:

<?php
class Person {
public $name=;
protected $email;
private $mobile;
function __construct() {
print "In Person constructor";
}
}
// In Person constructor
$p = new Person();
echo $p->name;
echo $p->email;
echo $p->mobile;
?>
ログイン後にコピー

Output:

PHPのコンストラクター

Conclusion

Hope this article finds you what you have been searching for. The article has different examples for you to learn. The more you put the examples in practice the easier it will become to grasp.

以上がPHPのコンストラクターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート