この記事では主にPHP遅延静的バインディングの原理と実装スキルを分析しますので、必要な方は参考にしてください。
php 遅延静的バインディング: クラスの自己を参照します。これは、定義時間に基づいているのではなく、計算中の実行結果に基づいています。まずは例を見てみましょう
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
header("content-type:text/html;charset=utf-8"); クラス人間{ パブリック静的関数hei(){ echo "私は親クラスの hei() メソッドです"; } パブリック関数say(){//サブクラスが親クラスのsay()メソッドを呼び出す場合、 self::hei();//ここで呼び出されているのは親クラスのhei()メソッドです 静的::hei(); //ここでサブクラスのhei()メソッドが呼び出されます。サブクラスにhei()メソッドが存在しない場合は、親クラスのhei()メソッドが呼び出されます。 } } クラス Stu は Human を拡張します{ パブリック静的関数hei(){ echo "私はサブクラスの hei() メソッドです"; } }
$stu = 新しい Stu(); $stu->say(); ?>
|
説明:
(1) サブクラスのインスタンス化されたオブジェクト $stu が Say メソッドを呼び出すと、親クラス Human 内で実行されるため、say() 内の self::hei() は親クラスの hei() メソッドを呼び出します。
(2) static::メソッド名(): static キーワードを使用すると、まずサブクラスでメソッドが検索され、見つからない場合は親クラスで検索されます。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/955271.html