PHP オブジェクト指向 public private protected 3 つの修飾子のコード例

伊谢尔伦
リリース: 2023-03-12 12:50:01
オリジナル
1790 人が閲覧しました

この記事は、PHP オブジェクト指向の public private protected アクセス修飾子についての詳細な分析と紹介です。必要な友人は参照してください

PHP には 3 つのアクセス修飾子があります。つまり、
public (public 、デフォルト)
protected (プロテクト)
private (プライベート)
public (public、default) PHP5 では、クラスでメンバーのアクセス修飾子が指定されていない場合、デフォルトはパブリック アクセスです。
protected (保護された) protected として宣言されたメンバーは、このクラスのサブクラスによってのみアクセスが許可されます。
private (プライベート) プライベートとして定義されたメンバーはクラス内のすべてのメンバーに表示され、アクセス制限はありません。クラス外からのアクセスは禁止です。

イラスト

デモ

コードは次のとおりです:

class Woman{
    public $name = "gaojin";
    protected $age = "22";
    private $height = "170";
    function info(){
        echo $this->name;
    }
    private function say(){
        echo "这是私有的方法";
    }
}
//$w = new Woman();
//echo $w->info();
//echo $w->name;//公共
属性
可以访问
//echo $w->age;// 受保护属性,报致命错误
//echo $w->height;// 受保护属性,报致命错误
//私有方法,访问出错
//$w->say(); // 私有方法,访问出错
class Girl extends Woman{
    // 可以重新定义父类的public和protected方法,但不能定义private的
  //protected $name = "jingao"; // 可以从新定义
    function info(){
        echo $this->name;
        echo $this->age;
        echo $this->height;
    }
    function say(){
        //parent::say();//私有方法 不能被
继承
  如果父类的的say方法是protected 这里就不会报错
        echo "我是女孩";
    }
}
$g = new Girl();
$g->say();//正常输出
//echo $g->height;//私有属性访问不到 没输出结果
//$g->info();//这是输出 gaojin22 $height是私有的属性没有被继承
//$g->height ="12";//这里是重新定义 height属性 也赋值了 
//$g->info();//所以这里会输出来gaojin2212
ログイン後にコピー


以上がPHP オブジェクト指向 public private protected 3 つの修飾子のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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