PHP self キーワードはクラス静的変数を指します
まず、self がクラス自体を指していることを明確にする必要があります。つまり、PHP の self キーワードはインスタンス化されたオブジェクトを指していないのが一般的です。self はクラス内の静的変数を指すために使用されます。
< ?php class Counter { //定义属性,包括一个静态变量 private static $firstCount = 0; private $lastCount; //构造函数 function __construct() { $this->lastCount = ++selft ::$firstCount; //使用PHP self关键字来调用静态变量,使用self 调用必须使用::(域运算符号) } //打印最次数值 function printLastCount() { print( $this->lastCount ); } } //实例化对象 $countObject = new Counter(); $countObject->printLastCount(); //输出 1 ?>
ここで注意する必要があるのは、6 行目と 12 行目の 2 か所だけです。 2行目で静的変数$firstCountを定義し、初期値は0です。そして12行目でこの値を呼び出し、PHPのselfキーワードを使って呼び出し、途中で「::」を使って接続しています。いわゆるドメインオペレーターです。
このとき呼び出すのは、クラス自体で定義された静的変数 $frestCount です。この静的変数は、次のオブジェクトのインスタンスとは関係がありません。クラス自体を呼び出すと、次のようになります。その場合、これを参照に使用することはできません。self はクラス自体を指しており、オブジェクト インスタンスとは何の関係もないため、PHP の self キーワードを使用して参照できます。言い換えれば、クラスに静的メンバーがある場合は、それらを呼び出すために self も使用する必要があります。