以下のエディターが、PHP における public、private、protected、abstract などのキーワードの使用法について詳しく説明した記事を共有します。この記事は非常に参考になるので、皆さんのお役に立てれば幸いです。エディターに従って見てみましょう。
PHP でよく使用されるキーワード
PHP の関数とクラスには多くの制限が含まれていますよく使用されるキーワード通常、abstract、final、interface、public、protected、private、static などが含まれます。以下では、それらの使用法を分析して整理します。
変数とメソッドのキーワード public、private、protected
public は最大の権限を持ち、サブクラスで使用することも、サポートされることもできます。インスタンス化、
protected は保護されたことを意味し、アクセス許可はサブクラスとこのクラスでのみアクセスできます。
private はプライベート、のみを意味します。キーワード static
# である可能性があります。 ##
<?php // /** * Define MyClass */ class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; public function printHello() { echo $this->public; echo $this->protected; echo $this->private; } protected function pro_test(){ var_dump(1); } } $obj = new MyClass(); echo $obj->public; // 这行能被正常执行 //echo $obj->protected; // 这行会产生一个致命错误 //echo $obj->private; // 这行也会产生一个致命错误 $obj->printHello(); // 输出 Public、Protected 和 Private $obj->pro_test();//直接报错 ?>
## 現在のクラスで変数とメソッドにアクセスできます #静的関数は、値または値を有効にすることです。
静的に変更された変数は、インスタンス化せずにクラス内で呼び出されるメソッドです。同時に、静的に変更された変数には、値を格納する機能があります。たとえば、静的を使用しない場合、実行結果は次のようになります:<?php function test(){ $var=1; echo $var."</br>"; $var++; } test();// 1 test();// 1 test();// 1 ?>
<?php function test(){ static $var=1; echo $var."</br>"; $var++; } test();// 1 test();// 2 test();// 3 ?>
var glo=0; function test(){ glo++; document.writeln(glo); } test(); test(); test();
<script> var glo=0; function test(){ glo++; document.writeln(glo); } test();// 1 test();// 2 test();// 3 </script>
そのため、static を定義していない言語と比較して、変数を保持できるという利点があり、メモリリークがありません。そして、グローバル変数を悪用するのは簡単ではありません (スコープがグローバルではないため)
$age=0; $age++; function test1() { static $age = 100; $age++; echo $age."</br>"; } function test2() { static $age = 1000; $age++; echo $age."</br>"; } test1(); // 101 test2(); // 1001
クラスの鍵およびメソッドfinalfinal という単語は、クラスと関数を変更するためにのみ使用できます。final を使用した後は、継承できません。たとえば、次のコードはエラーを直接報告します
# #
class BaseClass { public $public = 'Public'; function test() { echo "BaseClass::test() called\n"; } final public function moreTesting() { echo "BaseClass::moreTesting() called\n"; } } class ChildClass extends BaseClass { public function moreTesting() { echo "ChildClass::moreTesting() called\n"; } }
#特別なキーワード インターフェイス、抽象
##インターフェイスの意味は、プログラミング スタイルを標準化することです。実装されているかどうかを想像してください。インターフェイスがある場合、このインターフェイス クラスを使用するときは、内部のメソッドを実装する必要があります。これは、統一された名前付けの役割を果たします。 クラスは複数のインターフェイスを継承できます。インターフェイス間の単一の継承は、extends によって実現されます。クラスとインターフェイス間の関係は、implements によって確立されます。
サンプル コード:<?php interface testA{ function funcA(); } interface testB{ function funcB(); } interface testC extends testA { function funcC(); } class run implements testC ,testB { public function funcA() { // TODO: Implement funcA() method. } public function funcB() { // TODO: Implement funcB() method. } public function funcC() { // TODO: Implement funcC() method. } } ?>
<?php abstract class shopping { public function buy() { echo "buy"; } public function loan() { echo "loan"; } } class leslieBuy extends shopping { } //$test1=new shopping;//直接语法错误 $leslieSie = new leslieBuy; $leslieSie->loan();//打印出loan ?>
PHP が同じ値を持つ配列で新しい配列インスタンスを形成する方法についての説明
$argv および $argc 構成メソッドのコマンド ライン実行php script_php の例
以上がPHP での public、private、protected、abstract およびその他のキーワードの使用法について詳しく説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。