PHP における this と self
this
と self
は、オブジェクト指向プログラミング(OOP)のコンポーネントプロパティです。OOP は、データ操作を実行する関数を作成する手続き型プログラミングではなく、プログラミングプロシージャとしての PHP のコンポーネント機能です。
OOP を使用すると、データと関数(メソッド)の両方を持つオブジェクトを作成できます。
ただし、OOP は、PHP を含め、OOP をサポートする任意の言語でコーディングするためのより高速で包括的な方法を提供します。this
や self
などの特定の機能やプロパティは複雑になる可能性があり、OOP の使用を面白くしない可能性があります。
この記事では、this
と self
の違いと、PHP での使用方法について説明します。
PHP での OOP
OOP は、PHP プログラムに明確な構造を提供し、一般的な原則である Don'tRepeatYourself
に従うことができます。
クラスとメソッドは PHP の OOP の大きな部分であり、次のコードスニペットを使用して簡単に作成できます。
<?php
class Good {
public $propertyOne;
public $propertyTwo;
private $propertyThree;
function methodOne($propertyOne) {
//
}
}
?>
$propertyOne
、$propertyTwo
、$propertyThree
はクラス Good
のプロパティであり、methodOne()
はメソッドです。
このコードスニペットを使用して、オブジェクト、OOP の全体的な目標、およびクラスとメソッドの理由を作成できます。
$goodOne = new Good();
PHP の this
と self
現在のコードを拡張するために、クラス Good
の $propertyOne
を設定するメソッドを作成できます。
class Good {
//...
function setGoodName($propertyOne) {
$this->propertyOne = $propertyOne;
}
function showGoodName() {
return $this->propertyOne;
}
}
$this
キーワードは現在のオブジェクトを参照し、クラス内のメソッド内でのみ使用できます。したがって、PHP コードで $this
を使用する場合は、クラス内のメソッド内にある必要があります。
コードスニペットの場合、$this
キーワードは現在のオブジェクトを指し、Good
クラス内で $propertyOne
を呼び出せるようにします。
作成したメソッドを活用しましょう。
$book = new Good();
$book->setGoodName("PHP for Dummies");
echo $book->showGoodName();
コードスニペットの出力は以下のとおりです。
PHP for Dummies
PHP コードをさらに拡張し、静的ストア Name
に関するプロパティをクラス Good
に追加し、それをプライベートにして、プロパティをコンストラクターに返します。
class Good {
//...
private static $storeName = "JK Book Store";
function __construct()
{
return self::$storeName;
}
//...
}
self
キーワードは現在のクラスを参照し、上記のコードスニペットのようにクラス変数と静的変数にアクセスできるようにします。self
キーワードは、スコープ解決演算子::
を使用して、静的クラスメンバーにアクセスまたは参照します。
したがって、self
と $this
の大きな違いは、self
が静的またはクラス変数またはメソッドにアクセスし、$this
が非静的およびオブジェクトの変数とメソッドにアクセスすることです。
したがって、OOP を使用するときは、オブジェクト(クラスのインスタンス)内で $this
を使用し、クラスと静的プロパティに self
を使用することを知っておいてください。
完全なソースコード:
<?php
class Good {
// properties
public $propertyOne;
public $propertyTwo;
private $propertyThree;
private static $storeName = "JK Book Store";
// methods
function __construct()
{
return self::$storeName;
}
function setGoodName($propertyOne) {
$this->propertyOne = $propertyOne;
}
function showGoodName() {
return $this->propertyOne;
}
}
// creating a object
$book = new Good();
$book->setGoodName("PHP for Dummies");
echo $book->showGoodName();
?>
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn