【PHP】关于访问权限

访问修饰符是什么

为了确保程序中变量和方法不会重复命名,可以使用变量和函数的作用域。

访问修饰符的使用与种类

公共的

在课堂内外,都可以从任何地方访问。

<?php

class Myclass {
  public $public = 'public';

  public function printhello() {
    echo $this->public;
  }
}

$obj = new Myclass;
echo $obj->public; //プロパティの呼び出し
echo $obj->printhello(); //メソッドの呼び出し

//=> public public 

受保护的 hù de)

可以从该类和其继承类中访问。

<?php

class Myclass {
  protected $protected = 'protected';

  public function printhello() {
    echo $this->protected;
  }
}

class Myclass2 extends Myclass {
  public function printhello2() {
    echo $this->protected;
  }
}

$obj = new Myclass2;
echo $obj->protected;
echo $obj->printhello2();

// =>
// Fatal error: Uncaught Error: Cannot access protected property Myclass2::$protected in /var/www/html/php2/47/C.php:18 Stack trace: #0 {main} thrown in /var/www/html/php2/47/C.php on line 18
// protected

私人的

只能从这个班级访问

<?php

class Myclass {
  private $private = 'private';

  public function printhello() {
    echo $this->private;
  }
}

$obj = new Myclass;
echo $obj->private; //呼び出せない
echo $obj->printhello(); //呼び出せる

// =>
// Fatal error: Uncaught Error: Cannot access private property Myclass::$private in /var/www/html/php2/47/B.php:12 Stack trace: #0 {main} thrown in /var/www/html/php2/47/B.php on line 12
// private

广告
将在 10 秒后关闭
bannerAds