ホームページ > バックエンド開発 > PHPの問題 > PHPのクラスメソッドのアクセス権は何ですか

PHPのクラスメソッドのアクセス権は何ですか

青灯夜游
リリース: 2023-03-15 11:48:01
オリジナル
3772 人が閲覧しました

php のクラス メソッドには 3 種類のアクセス権限があります: 1. パブリック タイプ (public)、クラス内、サブクラス内、またはクラス外で制限なく使用できます。 2. プロテクト タイプ ( protected ); 3. プライベート型 (private) は、クラス内でのみ使用でき、クラス外やサブクラスでは使用できません。

PHPのクラスメソッドのアクセス権は何ですか

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

メンバークラス Method

クラス内で定義された関数はメンバー メソッドと呼ばれます。関数とメンバー メソッドの唯一の違いは、関数は独立した関数を実装するのに対し、メンバー メソッドはクラス内の動作を実装し、クラスの一部であることです。

クラス内では複数のメンバー メソッドを宣言できます。メンバー メソッドの宣言は関数の宣言とまったく同じです。ただし、メンバー メソッドを宣言する場合、関数キーワードの前にアクセス修飾子を追加できます。アクセスを制御します。パブリック、プライベート、保護などの権限。

#メソッドのアクセス権限

3 つのアクセス権限があります:

public: パブリック タイプ、クラス内、サブクラス内、またはクラス外で制限なく使用可能

機能: 外部から呼び出し可能、内部から呼び出し可能、サブクラス呼び出し可能

サブクラス内では、self を介してパブリック メソッドまたはプロパティを呼び出すことができます::var、および親クラスのメソッドを呼び出すparent::method

インスタンスでは、$obj->var

protected: 保護された型を介してパブリック メソッドまたはプロパティを呼び出すことができます。 、クラス内およびサブクラス内で使用できますが、クラス外では使用できません

機能: 外部から呼び出すことはできませんが、サブクラスは内部から呼び出すことができます。

で呼び出すことができます。サブクラスでは、self::var を通じて保護されたメソッドまたは属性を呼び出すことができ、parent::method は親クラスのメソッドを呼び出します。

インスタンスでは、$obj->var を通じて呼び出すことはできません。または保護された型のプロパティ

private: プライベート型 はクラス内でのみ使用でき、クラス外やサブクラスでは使用できません。

特徴: 外部から呼び出し不可、内部から呼び出し可能、サブクラスから呼び出し不可

この型の属性またはメソッドは、このクラス、このクラスのインスタンスおよびサブクラスでのみ使用できます。プライベート型プロパティとメソッドはサブクラスのインスタンスで呼び出すことはできません

注:

メソッドを作成するときに指定しない場合、デフォルトで public になります。

<?php
 class EMBA_student  // 声明EMBA学生类
      {
          //用private来定义私有类的属性
          private $no; //序号
          private $name; // 姓名
          private $gender; //性别
          private $age; //年龄

          //方法
          //方法1 ,私有方法,输出年龄

       private   function show_age()
          {

  echo"我的年龄是:$this->age<br />";

              }
//方法2,公有方法,回答年龄
public function ask_age()
{
    $this->show_age();
    }
//方法3,设置数据
function set_data($arr){
    $this->no=$arr["no"];
        $this->name=$arr["name"];
            $this->gender=$arr["gender"];
                $this->age=$arr["age"];
    }
          }

 //实例化一个对象
 $s=new EMBA_student;
 $arr=array("no"=>"1","name"=>"Qian Zhang","gender"=>"Female","age"=>"33","department"=>"商业营销");
 $s->set_data($arr);

//echo $s->age;//Fatal error: Cannot access private property EMBA_student::$age in C:\xampp\htdocs\v\v.php on line 47
//$s->show_age(); //Fatal error: Call to private method EMBA_student::show_age() from context &#39;&#39; in C:\xampp\htdocs\v\v.php on line 48

 $s->ask_age();

  ?>
ログイン後にコピー

結果:

我的年龄是:33
ログイン後にコピー

補足: self とparentの違い

a) これら 2 つのオブジェクトはサブクラスでよく使用されます。主な違いは、self は親クラスの public または protected プロパティを呼び出すことができますが、parent は

b).self:: 現在のクラスの静的メンバー (メソッドとプロパティ) を表し、$ this を呼び出すことができないことです。は異なります。$this は現在のオブジェクトを参照します。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPのクラスメソッドのアクセス権は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート