* スコープ パーサー::
* 1. 目的
* 1. 静的メンバー (クラス外) の呼び出し
# * 2. クラス定数の呼び出し
* 3. サブクラスの対象となるクラス メンバー (プロパティ/メソッド) の呼び出し
* 2. シナリオ
* 1. クラスの外部: クラス名を介したクラスへのアクセスのみが可能です。 allowed Member
* 2. クラス内: 以下のみが許可されます: self、parent、static
* 3. 特別: クラス名変数は、クラス名の参照に使用できます。 (php5.3)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | class Demo1
{
const HOME = '合肥';
public static function test1()
{
return __METHOD__ ;
}
public static function test2()
{
return static ::test1();
}
}
class Demo2 extends Demo1
{
public static $name = '朱老师';
public static function test1()
{
$res = self:: $name .'<br>';
$res .= parent::HOME.'<br>';
$res .= parent::test1().'<br>';
$res .= __METHOD__ ;
return $res ;
}
}
|
ログイン後にコピー
//1. クラスの外部からクラスの静的メンバーを呼び出します
1 2 3 4 5 | echo Demo1::HOME,'<br>';
echo Demo1::test1();
echo '<hr>';
echo Demo2::test1();
echo '<hr>';
|
ログイン後にコピー
//Demo1 が test2() を呼び出すことと Demo2 が test2 を呼び出すことの違いに注意してください。 ()
//Demo1::test() Demo1
1 2 | echo Demo1::test2();
echo '<hr>';
|
ログイン後にコピー
//Demo2::test2() の test1() の実行結果を返します。 Demo2
1 2 | echo Demo2::test2();
echo '<hr>';
|
ログイン後にコピー
//php5.3、クラス変数を使用して
1 2 | $class = 'Demo2';
echo $class ::test2();
|
ログイン後にコピー
を呼び出すことができます
以上がPHPの範囲パーサーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。