PHP には、public、private、protected の 3 つのアクセス修飾子があります。宣言の前にこれらのキーワードを追加することで、プロパティ、メソッド、または定数の可視性を定義できます。それでは、それらの違いは何でしょうか?この記事では簡単に紹介しますので、皆様のお役に立てれば幸いです。
PHP パブリック アクセス修飾子
public 修飾子は、内部と外部の両方で使用できます。クラス メンバーが public に宣言されている場合、どこからでもアクセスできます。 [ビデオチュートリアルの推奨: PHP チュートリアル ]
例:
<?php header("content-type:text/html;charset=utf-8"); // BaseClass class pub { public $tag_line = "php中文网!"; function display() { echo $this->tag_line."<br/>"; } } // 子类 class child extends pub { function show(){ echo $this->tag_line; } } // 对象声明 $obj= new child; // 输出 echo $obj->tag_line."<br/>"; $obj->display(); $obj->show(); ?>
出力:
private アクセス修飾子
private 修飾子は、それが定義されているクラスおよびその親クラスまたは継承されたクラスで使用できます。クラス メンバーが保護されていると宣言されている場合、そのメンバーにはクラス自体内、および継承クラスおよび親クラスからのみアクセスできます。
例:
<?php header("content-type:text/html;charset=utf-8"); // 基类 class pro { protected $x = 500; protected $y = 500; // 实现减法 function sub() { echo $sum=$this->x-$this->y . "<br/>"; } } // 子类-继承类 class child extends pro { function mul() //实现乘法 { echo $sub=$this->x*$this->y; } } $obj= new child; $obj->sub(); $obj->mul(); ?>
出力:
保護されたアクセスの変更
#protected 修飾子は、それが定義されているクラスで使用できます。 注: クラスの外ではアクセスできません。これは、継承されたクラスを意味します。
クラス メンバーがプライベートとして宣言されている場合、そのメンバーが定義されているクラスからのみアクセスできます。
#例:
<?php header("content-type:text/html;charset=utf-8"); // 基类 class demo { private $name="PHP中文网!"; private function show() { echo "这是基类的私有方法"; } } // 子类 class child extends demo { function display() { echo $this->name; } } // 对象声明 $obj= new child; // 出现异常---未捕获错误:调用私有方法demo::show() //$obj->show(); //出现异常--未定义的属性:子级::$name $obj->display(); ?>
:
説明:
上記の例からわかるように、プライベート クラス データにはクラスの外部からアクセスできないため、エラーが表示されます。以上がPHP におけるパブリック、プライベート、プロテクトの簡単な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。