【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