ホームページ  >  記事  >  バックエンド開発  >  PHPのクラスとメソッドのキーワードチュートリアルの詳細な説明

PHPのクラスとメソッドのキーワードチュートリアルの詳細な説明

亚连
亚连オリジナル
2018-05-17 13:49:562223ブラウズ

以下は、私がまとめた PHP クラスとメソッド キーワードのチュートリアルです。興味のある学生はチェックしてください。

1. Final
クラスを継承したくない場合は、final を使用してこのクラスを変更します。このクラスは継承されません。
final---クラスとメソッドの前に使用されます。
最終クラス---継承できません。
最終メソッド---オーバーライドできません。
2. public はグローバルを意味し、クラス内外のサブクラスからアクセスできます。private はプライベートを意味し、このクラス内でのみ使用できます。protected は、このクラス、サブクラス、または親クラスからのみアクセスできます。 ;
3. これは現在のオブジェクトへのポインター (C ではポインターとみなすことができます)、self は現在のクラスへのポインター、parent は親クラスへのポインターです
self: 変数とメソッドが次のように設定されている場合static、それらはこのクラスで呼び出されます self
4、static
クラスメンバーまたはメソッドを static として宣言すると、クラスをインスタンス化せずに直接アクセスできます。静的メンバー (静的メソッドを除く) には、オブジェクトを介してアクセスできません。静的メンバーはクラスに属し、どのオブジェクト インスタンスにも属しませんが、クラスのオブジェクト インスタンスは共有できます。
次に、$object->… の使用と class::…:
1 の使用の違いを見てみましょう。 $object->… を使用する場合、オブジェクトを作成するために コンストラクターを実行する必要があります。 ; 2. class::... を使用して、コンストラクターを実行せずに静的メソッド/変数を呼び出します。
3. 非静的メソッド/変数を呼び出すには、class::... を使用します。オブジェクトを作成します。
5. 抽象クラス
1.
抽象クラス1.抽象クラスとは、クラスと抽象メソッド(クラスメソッドの関数キーワードの前に抽象キーワード)の前に抽象キーワードを追加したクラスを指します。 2.抽象クラスは直接インスタンス化できません。抽象クラスは、サブクラスに必要なメソッドのみを定義 (または部分的に実装) します。サブクラスは、抽象クラスを継承し、抽象クラス内のすべての抽象メソッドを実装することによって、抽象クラスを具体化できます。
3.サブクラスをインスタンス化する必要がある場合は、抽象クラス内のすべての抽象メソッドを実装する必要があります。サブクラスが抽象クラス内のすべての抽象メソッドを実装していない場合、そのサブクラスも抽象クラスであり、クラス内でその前に abstract キーワードを付ける必要があり、インスタンス化できません。
6.インターフェースインターフェース
1.抽象クラスは具体的な実装の標準を提供しますが、インターフェイスは純粋なテンプレートです。インターフェイスは関数のみを定義し、実装内容は定義しません。インターフェースはキーワードinterfaceで宣言されます。
2.インターフェイスは完全に抽象的であり、メソッドとパブリック メソッドのみを宣言でき、メソッド本体を定義できず、インスタンス変数も宣言できません。ただし、インターフェイスでは定数変数を宣言できます。しかし、インターフェイスに定数変数を配置すると、インターフェイスとして存在する目的に違反し、インターフェイスとクラスのさまざまな値が混乱します。本当に必要な場合は、対応する抽象クラスまたはクラスに配置できます。
7.instanceof
PHP5 のもう 1 つの新しいメンバーは instdnceof キーワードです。このキーワードを使用して、オブジェクトがクラスのインスタンスであるか、クラスのサブクラスであるか、または特定のインターフェイスを実装しているかを判断し、対応する操作を実行します。場合によっては、クラスが特定の型であるか、または特定のインターフェイスを実装しているかを判断する必要があります。このタスクには、instanceof
operator
が最適です。 instanceof 演算子は、インスタンスが特定の型であるかどうか、インスタンスが特定の型を継承しているかどうか、インスタンスまたはその祖先クラスが特定のインターフェイスを実装しているかどうかという 3 つのことをチェックします。たとえば、manager という名前のオブジェクトが Employee クラスのインスタンスであるかどうかを知りたいとします。

$manager = new Employee();
if ($manager instanceof Employee)
  echo "Yes";
有两点值得注意。首先,类名没有任何定界符(引号)。使用定界符将导致
语法错误
。其次,如果比较失败,脚本将退出执行。instanceof关键字在同时处理多个对象时特别有用。例如,你可能要重复地调用某个函数,但希望根据对象类型调整函数的行为。可以使用case语句和instanceof关键字来实现这个目标。
class test{}
class test{}
class testChilern 
Extends
 test{}
$a = new test();
$m = new test();
$i = ($m instanceof test);
if($i)
  echo &#39;$m是类test的实例!<br />&#39;; // get this value
switch ($a instanceof test){
  case true :
    echo &#39;YES<br />&#39;;
    break;
  case false :
    echo &#39;No<br />&#39;; //get this value
    break;
}
$d=new testChilern();
if($d instanceof test)echo &#39;$d是类test的子类!<br />&#39;; // get this value

php の instanceof の関数は何ですか?

関数: (1) オブジェクトが特定のクラスのインスタンスであるかどうかを判断します。 , (2) オブジェクトがインターフェイスを実装しているかどうかを判断します。

1回目の使用法:

<?php
$obj = new A();
if ($obj instanceof A) {
  echo &#39;A&#39;;
}

2回目の使用法:

<?php
interface ExampleInterface
{
   public function interfaceMethod();
 }
 class ExampleClass implements ExampleInterface
{
   public function interfaceMethod()
   {
     return &#39;Hello World!&#39;;
   }
 }
$exampleInstance = new ExampleClass();
 if($exampleInstance instanceof ExampleInterface){
   echo &#39;Yes, it is&#39;;
 }else{
   echo &#39;No, it is not&#39;;
} 
?>

出力結果: はい、そうです

さらに、instanceofとis_subclass_of()の違いに注意してください。コードを参照してください:


<?php
class Foo {
   public $foobar = &#39;Foo&#39;;
   public function test() {
     echo $this->foobar . "\n";
   }
 }
 class Bar extends Foo {
   public $foobar = &#39;Bar&#39;;
 }
$a = new Foo();
$b = new Bar();
echo "use of test() method\n";
$a->test();
$b->test();
echo "instanceof Foo\n";
var_dump($a instanceof Foo); // TRUE
var_dump($b instanceof Foo); // TRUE
echo "instanceof Bar\n";
var_dump($a instanceof Bar); // FALSE
var_dump($b instanceof Bar); // TRUE
echo "subclass of Foo\n";
var_dump(is_subclass_of($a, &#39;Foo&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Foo&#39;)); // TRUE
echo "subclass of Bar\n";
var_dump(is_subclass_of($a, &#39;Bar&#39;)); // FALSE
var_dump(is_subclass_of($b, &#39;Bar&#39;)); // FALSE
?>
 输出结果(PHP 5.4.4):
 use of test() method
 Foo
 Bar
 instanceof Foo
 bool(true)
 bool(true)
 instanceof Bar
 bool(false)
 bool(true)
 subclass of Foo
 bool(false)
 bool(true)
 subclass of Bar
 bool(false)

上記私は、PHP のクラスとメソッドのキーワードを説明するチュートリアルをまとめました。将来お役に立てれば幸いです。 related artated article:inmentspaceの詳細な使用法と使用php閉鎖関数()use()の詳細な使用()

php名空間名の詳細な使用ガイドとインポートの使用ver

以上がPHPのクラスとメソッドのキーワードチュートリアルの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。