ホームページ >バックエンド開発 >PHPチュートリアル >PHP におけるパブリック、プライベート、プロテクトの簡単な比較

PHP におけるパブリック、プライベート、プロテクトの簡単な比較

青灯夜游
青灯夜游オリジナル
2019-02-01 17:20:434744ブラウズ

PHP には、public、private、protected の 3 つのアクセス修飾子があります。宣言の前にこれらのキーワードを追加することで、プロパティ、メソッド、または定数の可視性を定義できます。それでは、それらの違いは何でしょうか?この記事では簡単に紹介しますので、皆様のお役に立てれば幸いです。

PHP におけるパブリック、プライベート、プロテクトの簡単な比較

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();  
?>

出力:

PHP におけるパブリック、プライベート、プロテクトの簡単な比較

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(); 
?>

出力:

PHP におけるパブリック、プライベート、プロテクトの簡単な比較

保護されたアクセスの変更

#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 サイトの関連チュートリアルのコラムに注目してください。 ! !

以上がPHP におけるパブリック、プライベート、プロテクトの簡単な比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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